最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Why is Safari confused about Date.getDay() for DST start in Sydney, Aus time zone? - Stack Overflow

programmeradmin1浏览0评论

Safari on OSX believes that October 6th, 2013 is a Saturday in Australia. It's not, it's actually a Sunday.

To replicate this issue, just set your time zone to Sydney-Australia, pop open the dev console in Safari, and enter new Date("2013/10/06"). You'll get this:

Now change to Seattle-US and you'll get this:

The problem also occurs for Melbourne-Australia but not for cities further north such as Brisbane (which fits the zoning for Australian DST), or a handful of other cities I've tested throughout the world.

Now, it just so happens that October 6th, 2013 is the start of daylight savings time in Sydney.. And the same mistake is made for the other DST start dates in other years. There does not seem to be a problem for DST end dates. There does not seem to be a problem for DST start dates in PDT time zone. Also, Chrome and Firefox do not exhibit this problem.

I've tested most of this on two different Macs, one on Snow Leopard with Safari 5.1.7 and one on Lion with Safari 6.0.2.

So the question is -- is this a bug or is there some kind of rational reason for this?

Safari on OSX believes that October 6th, 2013 is a Saturday in Australia. It's not, it's actually a Sunday.

To replicate this issue, just set your time zone to Sydney-Australia, pop open the dev console in Safari, and enter new Date("2013/10/06"). You'll get this:

Now change to Seattle-US and you'll get this:

The problem also occurs for Melbourne-Australia but not for cities further north such as Brisbane (which fits the zoning for Australian DST), or a handful of other cities I've tested throughout the world.

Now, it just so happens that October 6th, 2013 is the start of daylight savings time in Sydney.. And the same mistake is made for the other DST start dates in other years. There does not seem to be a problem for DST end dates. There does not seem to be a problem for DST start dates in PDT time zone. Also, Chrome and Firefox do not exhibit this problem.

I've tested most of this on two different Macs, one on Snow Leopard with Safari 5.1.7 and one on Lion with Safari 6.0.2.

So the question is -- is this a bug or is there some kind of rational reason for this?

Share asked Feb 12, 2013 at 18:27 jwljwl 10.5k16 gold badges58 silver badges92 bronze badges 8
  • 1 Same behaviour on Safari under Win7 for me – koopajah Commented Feb 12, 2013 at 18:37
  • Try: d = new Date("2013-10-06"); d.setMinutes(d.getMinutes() + d.getTimezoneOffset()) – Dagg Nabbit Commented Feb 13, 2013 at 22:33
  • My hack is to use new Date(datestring+" 12:00").getDay() which puts the time solidly in the middle of the day away from all DST switches (worldtimezone./daylight.html). – jwl Commented Feb 13, 2013 at 22:44
  • @jlarson do you have any more info on this / link to the bug filed with Apple?? I'm unfortunately seeing the same issue with Safari on both OSX Mavericks and iOS7... – Boycs Commented Feb 24, 2014 at 4:10
  • @Boycs it is problem ID #13201479. I don't see a way from thier bug reporter to get a direct link but it should e up by search. (ugh, Apple's developer web stuff is still so *@!#) – jwl Commented Feb 24, 2014 at 16:09
 |  Show 3 more ments

1 Answer 1

Reset to default 7

This really should be considered a bug - Technically speaking DST in Sydney starts on 2013/10/06 at 2AM, so 2AM then bees 3AM (http://www.timeanddate./worldclock/clockchange.html?n=240). It appears Safari in this case is thinking you mean 2013/10/06 at midnight - and is then going back 1 hour to 11PM the previous day. This doesn't even make sense because at 2AM the clock is supposed to go forward an hour.

I would remend filing a bug report for this - because the output is so obviously wrong

https://developer.apple./bugreporter/

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论