世界各地的 GMT 时区都一样吗?

Pon*_*ing 1 php time timezone centralized gmt

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

例子:

一位用户从印度创建条目并将记录插入到数据库中

第二个用户从美国/加拿大/法国创建条目并将记录插入到数据库中。

那个时间和我gmdate()在服务器上插入记录时使用的功能一样吗?

Mat*_*int 5

首先,该函数被调用gmdate,而不是gmtdateor gmatdate。但我会假设这些是错别字。

GMT 是格林威治标准时间的缩写。它的名字对某些人来说有点混乱,因为在英国的格林威治,他们在冬季遵循 GMT,在夏季遵循 BST(英国夏令时)。这是英国使用的夏令时形式。但是 GMT总是指标准时间,而不是夏令时。换句话说,GMT 是一个不遵循夏令时的固定时区,即使它的物理位置遵循。

为了澄清这一点,但不要混淆,我们更喜欢使用术语 UTC,它代表通用协调时间(是的,字母乱序,这是有原因的,这里不相关)。UTC 是一种被认可为国际标准的计时系统。它的定义有几个部分,但这里重要的部分是它定义的基线与 GMT 相同。或者根据您询问的对象,GMT 现在的定义与 UTC 相同。没关系 - 它们实际上是相同的。

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

使用 UTC 的重要原因是服务器应用程序不应依赖于任何本地时区。谁知道,有一天您可能会拿起数据并将其移动到另一个位置,或者将其迁移到云中,或者与其他地方的服务器进行交互。这样做时,如果您的时间是 UTC,那么您的参考点都是相同的,因此一切都会正常进行。

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

UTC/GMT 的替代方法是存储日期+时间+偏移值。然后您将知道本地时间,以及它与 UTC 的关系(通过偏移量)。但我仍然会将其保留为与当地时间相关的值。我的意思是,谁真的在乎服务器的当地时间呢?如果它不带有相关的业务上下文,那么您不应该将它引入到您的应用程序中。