2012-01-04 34 views
3

我很確定我做錯了什麼,但我儘可能簡化了我的示例,我不禁感覺像開始/結束在某些年份,javascript的夏令時時間在我的時區是錯誤的。JavaScript的日期似乎引用了不正確的DST開始/結束日期

我在太平洋時區。現在是太平洋標準時間。當我運行在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本來是要在週日開始,1989年4月2日,週日,10月29日結束,1989年

我加入這裏的jsfiddle例如:

http://jsfiddle.net/jzFgM/

這個代碼很粗糙,我知道 - 只是想舉一個具體的例子。您可能需要在太平洋時區和Windows 7上才能看到結果。它在Chrome,Firefox和IE9中給我提供了相同的「錯誤」日期。

爲什麼我會看到這些結果?我認爲這是一個簡單的誤解,但我一直無法查明問題。

回答

1

Date類正在使用由Energy Policy Act of 2005頒佈的DST的當前值。見here

該法案通過改變開始和夏令時 結束日期,在2007年開始的時鐘設定 提前一小時在3月的第二個星期天修訂的1966年統一時間法案(三月在2007年4月1日的第一個星期日,改爲 。在十一月(2007年11月4日)的第一個星期日,時鐘被撥回 ,相當於 比10月最後一個星期日(2007年10月28日)。

+0

好的,這是有道理的。那麼我是否需要自己做出調整以獲得正確的日期?似乎有點傻,爲什麼不將這個功能內置到Javascript中?這與我在服務器端進行正確轉換的能力混爲一談。 – user949286 2012-01-04 20:47:03

+0

因爲重寫歷史很有趣? *我們一直在與東亞的戰爭。* – 2012-01-04 20:59:38

+0

哈哈,沒錯。我想我應該感謝標準委員會做出這個令人愉快的決定。 – user949286 2012-01-04 23:44:46

相關問題