GMT时区在全世界都是一样的吗?

时间:2013-08-31 18:28:21

标签: php time timezone gmt centralized

我的服务器正在运行PHP。我正在使用gmdate()函数将记录从服务器插入我的数据库。我只是想知道时区是否使用gmdate()函数进行集中化?

示例:

  

一个用户从印度创建条目,并将记录插入数据库

     

     

第二个用户从USA / canada / france创建条目,并将记录插入数据库。

在服务器上插入记录时,该时间是否与我使用gmdate()函数相同?

1 个答案:

答案 0 :(得分:4)

首先,该函数称为gmdate,而不是gmtdategmatdate。但我认为这些都是拼写错误。

GMT是格林威治标准时间的缩写。它的名字有些令人困惑,如格林威治,英格兰,英国,他们在冬季跟随GMT,在夏季跟随BST(英国夏令时)。这是英国使用的夏令时的形式。但GMT 总是是指标准时间,而不是白天时间。换句话说,GMT是一个固定的时区,不遵循夏令时,即使它的物理位置也是如此。

为了解决这个问题,但我们更倾向于使用术语UTC,它代表通用协调时间(是的,字母不按顺序排列,这是有原因的,这与此无关)。 UTC是一种作为国际标准达成一致的计时系统。它的定义有几个部分,但这里的重要部分是它将其基线定义为与GMT相同。或者根据您的要求,GMT现在定义为与UTC相同。没关系 - 它们实际上是一样的。

是的,无论你在世界的哪个地方谈论它,你都应该在使用gmdate()函数返回时获得相同的时间。

使用UTC的重要原因是服务器应用程序不应该依赖于任何本地时区。谁知道,有一天您可能会拿起您的数据并将其移至其他位置,或将其迁移到云端,或与其他地方的服务器进行交互。这样做时,如果你的时间是UTC,那么你的参考点都是一样的,所以一切都会很好。

另一方面,如果您存储本地时间然后移动到其他地方,那么您的所有数据都必须更新。即使您从未搬家 - 如果您当地的时间在美国或英国或其他许多地方,这些地方夏令时都是时区的一部分。这意味着您可以存储每年至少一小时不明确的当地时间。这不是一件好事。

UTC / GMT的替代方法是存储日期+时间+偏移值。然后,您将了解当地时间以及它与UTC的关系(通过偏移量)。但我仍然会保留当地时间相关的价值。我的意思是,谁真正关心服务器的本地时间呢?如果它没有相关的业务背景,那么您不应该将其引入您的应用程序。