我在 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())”
- Dojo 日期/戳记:“stamp.fromISOString(new Date().toISOString())”
- 网站代码库各个不同区域的“new Date()”
最佳答案
许多浏览器(包括 FireFox)要求您在更改时区后完全重新启动浏览器才能提供正确的结果。关闭所有浏览器窗口并重新启动,然后再次测试应该可以解决问题。
Windows 上的 Internet Explorer 是一个异常(exception),它会订阅操作系统消息并正确重置,无需重新启动。
关于javascript - Date() 在网站脚本中不考虑夏令时,但在 Firefox 控制台中执行时会考虑夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25082060/