2013-02-20 144 views
33

我正在运行一个来自世界各地的人访问的世界目标网站。该数据库包含国际日期行西格式的时间。我正在使用JavaScript使用用户时区,并将数据库中的时间转换为用户的时间,然后在页面上显示。我想问一下,国际日期线西是世界级网站的正确格式?或者设置为UTC或GMT会更好? UTC和GMT以及International Date Line West有什么区别?这三个一样吗?最后,我应该在什么时候将我的服务器设置为使用用户时区偏移进行转换?GMT是否和UTC相同?

+2

从我的理解,UTC是格林威治标准时间,但没有夏令时。不过,我很久以前就知道要远离凌乱的日期时间问题。 – Servy 2013-02-20 17:23:48

+1

简短回答是的。长回答没有。格林威治标准时间从来没有“夏令时”,那么它被称为“BST”或其他名称,所以这不是问题。最主要的是格林尼治标准时间和UTC可以相差不超过500毫秒。 – 2013-02-20 17:23:56

+0

@Servy - 在英国夏令时开始时,我们将时区移至BST(GMT + 1)。 – Quentin 2013-02-20 17:24:57

回答

19

如果您对天文观测(例如GPS等卫星)感兴趣,或者您想引用技术标准(ITU-R TF.460-6),那么您可能会关心我们使用UTC和格林尼治标准时间不再有精确的定义。否则,您可能会认为GMT与UTC相同,并且也认为UT和UT1与UTC相同 - 技术上它们不是。另外,如果您正在跟踪计算机犯罪分子或其他分布式活动,那么您需要确定在某些其他事件之前,各个站点的某些事件是否可能发生。为此,您需要学习和使用网络时间协议(NTP)。这对你对时间的理解要比UTC,UT1和UT之间的微小差异更大。

“International Date Line West”(国际日期行西)只是时区的友好名称,其时间定义为比UTC小12小时(即UTC-12)。

+1

它怎么是一个友好的名字?我预计UTC + 12(例如:苏瓦) – Jasen 2017-09-21 03:30:00

+0

它不回答这个问题。它是否相同? – 2017-10-06 15:45:16

+0

哎呀,我以不明确的方式使用了代词“which”和“they”。我正在考虑所有的“格林尼治标准时间”(通过格林威治子午线的平均太阳时间),UTC,UT1和“UT”(通过任何其他定义,如UT0)的定义。虽然所有这些都彼此相近,但大多数时候它们的确切值都是不同的。 – minopret 2017-10-18 08:09:27

28

UTC实际上是GMT的新名称。它有很小的差异,但是没有一个会在这种情况下影响你。

塞维的评论是完全错误的说格林尼治标准时间包括夏时制。这是一个叫做BST的不同时区,英国在夏季从格林尼治标准时间开始移动。

+2

UTC使用闰秒来补偿地球和太阳运动的不规则性,这意味着有时UTC的一分钟可能有59或61秒。然而,由于它基于经过格林威治天文台的零度经度,它恰好通常与GMT相匹配。请注意,UTC没有夏令时。 – cernunnos 2013-02-20 17:29:46

+1

国际日期行呢?你能告诉我那是什么吗? – 2013-02-20 17:30:54

+0

这是一个很容易找到谷歌:) http://en.wikipedia.org/wiki/International_Date_Line – cernunnos 2013-02-20 17:34:07

1

通常,当您必须向不同时区的人员呈现日期或时间时,您应该做的就是在数据库中保存UTC的所有时间信息并将其转换为显示图层上的用户时区(当您将信息呈现给您的用户)

但是你会发现几个挑战: - 你的JavaScript中得到的时区可能不可信赖 - 通过IP查找用户的位置,然后让该时区也不可信

在我看来,一个好方法是使用“最佳猜测”来查找默认时区(javascript时区应该足够了),并让用户能够主动配置他的时区。

在某些谷歌应用程序中,他们的方法是在开始之前提示用户输入他的时区,这应该只在您可以保证每次用户访问您的网站时不必重复此操作(通过用户帐户或饼干)

+0

但是在这种情况下,我们必须为注册的未注册和数据库条目设置cookie。但就我的经验而言,有些人甚至不知道时区是什么? ...那么他们呢?所以我们要照顾所有这些问题 – 2013-02-20 17:50:08

+0

你错过了。所有日期和时间信息在数据库中保存为UTC。当用户访问您的网站时,您将该日期时间信息转换为用户的时区。这个想法是为了保证他不必知道很多关于时区的信息,所有提交给他的日期和时间都在他的时区。 – cernunnos 2013-02-20 17:57:56

+0

我不这么认为。因为我的数据库不能节省UTC时间。它节省了我当地的时间。那就是印度时间。 – 2013-02-20 18:34:29