2014-11-03 70 views
6

有人可以解釋爲什麼new Date(1970, 0 ,1).getFullYear()返回1969而不是1970爲什麼new Date(1970,0,1).getFullYear()返回1969?

result.textContent = new Date(1970, 0, 1).getFullYear();
<div id=result></div>


提起Firefox的錯誤:https://bugzilla.mozilla.org/show_bug.cgi?id=1093130

+3

它在IE中會返回1970年我。 – Sobieck 2014-11-03 15:29:42

+8

返回1970年的Chrome 38 – 2014-11-03 15:30:49

+1

1970年我在Chrome(OSX )**,但在Firefox的'1969'** – Moob 2014-11-03 15:31:10

回答

7

看起來很像在Firefox中的SpiderMonkey的引擎時區的bug(最有可能在它使用了一些庫);在我的實驗中,它隻影響* nix操作系統,而不是Windows。 (見下面爲什麼時區進入它。)它返回

Wed Dec 31 1969 23:00:00 GMT+0000 (BST)

...的時候當然,我們(在英國時間@wilsonpage,我和其他數百萬)是不是在英國夏令時間了(當我們在夏季是時,它是GMT + 0100,而不是GMT-0100,所以在任何情況下,當地時間在後面 UTC都沒有意義)。 (注意:Chrome也顯示「BST」,但它具有正確的日期/時間。)(美國人的注意事項:您習慣了「xST」意思是「x 標準時間」[與「x daylight時間「],但在這裏,BST表示‘英國夏令時間’  —例如,夏令時。當我們不是在夏天的時候,我們是在格林尼治標準時間)。

我看到在Firefox 30這種行爲在同一系統上的Linux Mint 16(顯然是最新的軟件包系統)和Firefox 33(僅從Mozilla直接下載並安裝);我做不是在Windows 8.1上的Firefox 33上看到它。

@wilsonpage已確認他使用的是OS X,並且他看到了我的同一時間(包括「BST」部分)。

result.textContent = new Date(1970, 0, 1).toString();
<div id=result></div>


原因時區進入它(顯然引發的bug)是你給的值,該Date constructor的版本被解釋爲UTC,但getFullYear返回它的值在當地時間。

0

我遇到了一個錯誤這裏也:我在都柏林,GMT時間,但日期()會告訴我

"Fri Nov 07 2014 16:17:25 GMT+2359 (GMT)" 

看的時區偏移。我有一天(或更好:+00.00減1分鐘+23.59)。在CentOS 7

FF31.2.0我不知道如何解決這個問題:(

相關問題