【问题标题】:GMT vs UTC datesGMT 与 UTC 日期
【发布时间】:2010-12-09 09:19:23
【问题描述】:

我有一个内置在 JavaScript 中的日历,可以将日期与 PHP 进行比较。 JavaScript 日期对象是使用 PHP 设置的,但是,当我比较未来的日期时,它们似乎不同步。

PHP 设置为 GMT,JavaScript 设置为 UTC;这些标准有何不同,这是否会导致问题?

【问题讨论】:

  • 出于实际目的(当然所有情况下计算机都会看到),GMT 是 UTC。您的时区问题出在其他地方。让我们看一些代码。

标签: javascript php date utc gmt


【解决方案1】:

来自维基百科上的Coordinated Universal Time

协调世界时 (UTC) 是基于国际原子时 (TAI) 的时间标准,其中不定期添加闰秒以补偿地球自转速度减慢。

来自维基百科上的Greenwich Mean Time

UTC 是一个原子时标,仅与 GMT 近似,误差为 0.9 秒

【讨论】:

  • 这对于几乎任何应用程序都应该是可以忽略的。异常很少见,而且这些异常不太可能用 PHP 编写。
  • 那应该是 UT1 而不是 GMT。
  • 更重要的是:“[UTC] 是格林威治标准时间 (GMT) 的几个密切相关的继任者之一。在大多数情况下,UTC 被认为可以与 GMT 互换,但 GMT 不再精确定义为科学界”
【解决方案2】:

一个来自太阳,另一个来自atomic clock

出于您的目的,它们是相同的。

【讨论】:

    【解决方案3】:

    对于计算机,GMT 是 UTC+0 - 所以它们是等价的。

    【讨论】:

      【解决方案4】:

      如果您严格按照 UTC 和 GMT 的定义来定义,那么就像其他人指出的那样,没有真正的实际区别。

      但是需要小心,因为在某些情况下会使用(可能是遗留的)术语,例如Microsoft Timezone index values

      不同之处在于,在这种情况下,所谓的“GMT 时区”(代码 55)实际上是“GMT 语言环境”,它是都柏林、爱丁堡、里斯本、伦敦使用的语言环境(所有其中遵守夏令时),与蒙罗维亚和雷克雅未克使用的格林威治标准时间(代码 5A)不同,两者都不遵守夏令时。

      实际的区别在于,如果系统设置为使用 UTC(代码 80000050 在上面指定的语义下),那么它不会自动切换到夏令时,而如果您将时区设置为 GMT(代码 55),那么很有可能它会在夏季自动切换到 BST,而您不会注意到。

      【讨论】:

      • 如果您将其设置为“GMT”,则应该留在那里。如果您将其设置为“伦敦”,则应遵循该地区在夏季切换到 BST 的民用时间规则
      • @Jasen 据我所知,伦敦不是一个时区,而是一个地区。您可以将服务器设置为伦敦区域设置,但服务器将在半年报告 GMT 作为其时区,在另一半报告 BST。但是,如果您没有设置语言环境,那么它只会全年报告 UTC。如果您使用的是 Windows,那么伦敦语言环境被混淆地称为 GMT 或 BST 或由于某种原因而模棱两可的东西。这只是一整罐你真的不想打开的蠕虫。
      • 完全同意 WRT windows。
      • 不正确。不要将 UTC/GMT 与 London time 混为一谈。伦敦时间采用夏令时 (DST)。根据定义,UTC 和 GMT 不是。 UTC/GMT 是所有其他时区和 DST 的基准,通过提前或落后一些小时-分钟-秒的偏移量来衡量。在伦敦没有 DST 的半年时间里,它的挂钟时间恰好与 UTC/GMT 重合。 UTC/GMT 经度的地理位置恰好穿过伦敦(格林威治),但从概念上讲这无关紧要。
      • @BasilBourque 当人们阅读微软时区时,有时会感到困惑,例如support.microsoft.com/en-gb/help/973627/… 伦敦时区被命名为 GMT 标准时间,并且 UTC 有不同的代码。深入挖掘你会发现这是因为他们所谓的“GMT”实际上是“伦敦时间”,可以是 GMT 或 BST。
      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 2011-05-16
      • 2012-09-18
      • 2012-04-19
      • 2014-10-11
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多