【问题标题】:javascript - Date() not accounting for Daylight Savings in website script, but does when executed in Firefox consolejavascript - Date() 不考虑网站脚本中的夏令时,但在 Firefox 控制台中执行时会考虑
【发布时间】:2014-09-24 18:21:54
【问题描述】:

在获取当前时间时,我在 RedHat 上遇到了 Firefox 问题,但似乎只有在我们网站的脚本标签内执行时才会出现问题。对于我的本地时区 (GMT +0000),正确应用了夏令时并且 Date() 生成 IST/BST (GMT +0100)。但是当我针对其他时区(本例中为 EDT)进行测试时,没有考虑夏令时

当系统时间设置为 Fri Aug 1 07:42:56 EDT 2014 时,运行:

console.log(new Date());

在网站的脚本标签内返回:

Fri Aug 01 2014 06:42:56 GMT-0500 (EDT)

但是,在 Firefox 控制台或测试 html 页面上执行“new Date()”时,返回的值是正确的:

Fri Aug 01 2014 07:42:56 GMT-0400 (EDT)

Windows 上也不会出现此问题。我知道时区偏移已调整,以便时间在技术上是正确的,但我不明白为什么它在我们的网站上执行时会产生不同的值。我完全迷惑了。

目前的尝试:

  • "新日期(Date.now())"
  • 道场日期/戳:“stamp.fromISOString(new Date().toISOString())”
  • 网站代码库不同区域的“new Date()”

【问题讨论】:

  • 您实际将计算机更改为哪个时区设置?对于美国东部时间,它应该是"America/New_York"。请确认。另外 - 在检查结果之前更改时区后,您是否完全关闭并重新启动 FireFox?
  • 哇...每次 TZ 更改后重新启动 Firefox 就可以了。我有一种感觉,我在这里的第一个问题会发生这种情况!太感谢了!为了澄清起见,为了测试目的,我更改了几个不同的时区,包括“America/New_York”、“Europe/Rome”等都存在同样的问题。给你这个答案的正确程序是什么?
  • 在下面作为答案发布。谢谢。
  • 您可能还对this post on my blog感兴趣。

标签: javascript date firefox timezone offset


【解决方案1】:

包括 FireFox 在内的许多浏览器都要求您在更改时区后完全重新启动浏览器才能提供正确的结果。在再次测试之前关闭所有浏览器窗口并重新启动应该可以解决问题。

Windows 上的 Internet Explorer 是一个例外,它订阅操作系统消息并在不重新启动的情况下正确重置。

【讨论】:

    猜你喜欢
    • 2020-09-12
    • 2013-09-22
    • 1970-01-01
    • 2011-08-14
    • 2018-01-01
    • 2020-03-01
    • 2018-02-04
    • 2017-09-15
    • 2012-07-03
    相关资源
    最近更新 更多