我正在运行一个全球目标网站,来自世界各地的人们访问该网站。该数据库包含国际日期线西格式的时间。我使用JavaScript获取用户时区,并将数据库中的时间转换为用户的时间,然后在页面上显示。我想问一下,International Date Line West是世界级网站的正确格式吗?或者设置为UTC或GMT会更好吗? UTC和GMT以及International Date Line West有什么区别?这三个一样吗?最后,我应该在什么时间设置我的服务器,使用用户的时区偏移量进行转换?
答案 0 :(得分:30)
UTC实际上是GMT的新名称。它有很小的差异,但没有一个会在那种情况下影响你。
Servy的评论完全错误,称GMT包括夏令时。这是一个不同的时区,称为BST,英国从格林威治标准时间转移到夏季。
答案 1 :(得分:24)
如果您对天文观测感兴趣,例如GPS等卫星,或者如果您想引用技术标准(ITU-R TF.460-6),那么您可能会关心我们使用UTC和GMT不再具有精确的定义。否则,您可能认为GMT与UTC相同,并且还认为UT and UT1与UTC相同 - 从技术上讲它们不是。{/ p>
此外,如果您正在跟踪计算机犯罪分子或其他分布式活动,那么您需要确定在某些其他事件之前,各个站点上的某些事件是否可能已发生。为此,您需要学习并使用Network Time Protocol (NTP)。这对你理解时间的影响要大于UTC,UT1和UT之间的微小差异。
“International Date Line West”只是一个时区的友好名称,其时间定义为比UTC小12小时(即UTC-12)。
答案 2 :(得分:2)
通常,当您必须向不同时区的人们显示日期或时间时,您应该做的是将所有时间信息以UTC格式保存在数据库中,并将其转换为显示层上的用户时区(当您将信息呈现给您时用户)
然而,你会发现一些挑战: - 你从javascript获得的时区可能不值得信赖 - 通过IP查找用户的位置,然后获取时区也不值得信赖
我认为一个好方法是使用“最佳猜测”来查找默认时区(javascript时区应该足够)并让用户能够主动配置他的时区。
在某些谷歌应用程序中,他们的方法是在启动之前提示用户他的时区,只有当您可以保证每次用户访问您的站点时都不必重复此操作(通过用户帐户或饼干)