为什么Safari在悉尼,澳大利亚时区的DST开始时对Date.getDay()感到困惑?

时间:2013-02-12 18:27:20

标签: javascript safari timezone

OSX上的Safari认为2013年10月6日是澳大利亚的一个星期六。它不是,它实际上是一个星期天。

要复制此问题,只需将您的时区设置为悉尼 - 澳大利亚,在Safari中弹出开启控制台,然后输入新日期(“2013/10/06”)。你会得到这个:

enter image description here

现在改为西雅图 - 美国,你会得到这个:

enter image description here

墨尔本 - 澳大利亚也出现了这个问题,但布里斯班(适合zoning for Australian DST)或其他一些我在世界各地测试过的其他城市都没有这个问题。

现在,恰好在2013年10月6日是start of daylight savings time in Sydney.。并且其他年份的其他DST开始日期也犯了同样的错误。 DST结束日期似乎没有问题。 PDT时区的DST开始日期似乎没有问题。此外,Chrome和Firefox不会出现此问题。

我已经在两台不同的Mac上测试了大部分内容,其中一台使用Safari 5.1.7进行Snow Leopard,使用Safari 6.0.2进行Lion测试。

所以问题是 - 这是一个错误还是有某种理性的原因?

1 个答案:

答案 0 :(得分:7)

这确实应该被视为一个错误 - 从技术上讲,悉尼的DST在2013年10月6日凌晨2点开始,所以凌晨2点就变成凌晨3点(http://www.timeanddate.com/worldclock/clockchange.html?n=240)。在这种情况下,Safari似乎认为你的意思是2013/10/06午夜 - 然后在前一天的1小时到晚上11点。这甚至没有意义,因为在凌晨2点,时钟应该向前走一小时。

我建议为此提交错误报告 - 因为输出显然是错误的

https://developer.apple.com/bugreporter/