Я почти уверен, что делаю что-то не так, но я максимально упростил свой пример и не могу не чувствовать, что дата начала / окончания перехода на летнее время в javascript для некоторых летпросто неправильно в моем часовом поясе.
Я в Тихоокеанском часовом поясе.Сейчас это стандартное тихоокеанское время.Когда я запускаю все даты в 1989 году, он говорит, что DST начинается:
Mon Mar 13 1989 00:00:00 GMT-0700 (Pacific Daylight Time)
и заканчивается:
Sun Nov 05 1989 00:00:00 GMT-0700 (Pacific Daylight Time)
Согласно всем источникам, которые я смог найти (включая Википедию)и timeanddate.com ), DST должен был начаться в воскресенье, 2 апреля 1989 года, и закончиться в воскресенье, 29 октября 1989 года.
Я добавил пример JSFiddle здесь:
http://jsfiddle.net/jzFgM/
Код груб, я знаю - просто пытаюсь привести конкретный пример.Вам может потребоваться быть в Тихоокеанском часовом поясе и в Windows 7, чтобы увидеть результаты.Это дает мне те же «неправильные» даты в Chrome, Firefox и IE9.
Почему я вижу эти результаты?Я предполагаю, что это простое недоразумение, но я не смог точно определить проблему.