2015-07-11 187 views
-1

在我的网络应用程序,如电子商务网站。每个项目都有时间限制。我会在每个项目中显示剩余时间细节。我正在使用UTC time.how为每个用户转换当前本地时间。例如,美国有4或5个不同的时区。我使用php codeigniter并为我的web应用程序的mysql如何在我的web应用程序中自动将UTC时间更改为当前本地时间。

+0

这是一个广泛的讨论点,已经讨论过很多次了。请搜索,阅读现有答案,然后询问您是否有*特定*问题。 [tag:timezone]或[tag:datetime]标签广泛适用于此主题。 –

回答

1

如果我是你,我会保持所有时间在你的服务器端UTC,并只通过JavaScript转换为客户端的本地时间。然而,处理客户时间是棘手的,因为你无法真正了解他们的时间。

我已经看到了3种方法:

1)使用var offset = new Date().getTimezoneOffset();

可能获得客户端系统时区以自动方式的最佳途径。

2)尝试找出客户端IP的时区。

如果您需要在服务器上完成渲染时间,这可能是我唯一可以自动完成的自动方法。但它很容易出错,因为你的客户端可能使用代理,VPN等。另外,geoIP数据库可能不够准确。

3)让用户设置时区。

这是在玩它安全。用户可以决定。您也可以使用cookie等设置。

momentjs timezone library可能会帮助你所有三种方法。

+0

WRT#1,仅获得*当前偏移*,而不是时区。这对服务器端转换没有帮助,因为偏移量可能会在夏时制等时区内发生变化。请参阅[时区标记wiki](http://stackoverflow.com/tags/timezone/info)中的“时区!=偏移量”。 –

+0

这就是我写客户端的原因。获得真实时区可能非常棘手。我倾向于让用户设置它。我仍然认为OP应该在服务器上保持UTC的时间,并只处理客户端的时区问题。 – luksch

相关问题