有人可以解释为什么new Date(1970, 0 ,1).getFullYear()
会返回1969
而非1970
吗?
result.textContent = new Date(1970, 0, 1).getFullYear();

<div id=result></div>
&#13;
提起的Firefox Bug:https://bugzilla.mozilla.org/show_bug.cgi?id=1093130
答案 0 :(得分:7)
看起来很像Firefox的SpiderMonkey引擎中的时区错误(很可能在它使用的某个库中);在我的实验中它只影响* nix操作系统,而不影响Windows。 (见下面为什么时区会进入它。)它正在返回
Wed Dec 31 1969 23:00:00 GMT+0000 (BST)
......当然,我们(@wilsonpage,我自己以及英国时间的数百万人)不再参加英国夏令时(当我们 夏季时,它是GMT +0100,而不是GMT-0100,因此在任何情况下落后 UTC的本地时间都没有意义。 (旁注:Chrome也显示“BST”,但它有正确的日期/时间。)(美国人的注意事项:你习惯于“xST”意思是“x 标准时间”[相反到“x 日光时间”],但这里BST代表“英国夏令时” - 例如,夏令时。当我们不在夏季时,我们在GMT。)
我在Linux Mint 16上的Firefox 30(显然是包系统中的最新版本)和同一系统上的Firefox 33(直接从Mozilla下载和安装)中看到了这种行为;我不在Windows 8.1上的Firefox 33上看到它。
@wilsonpage已经确认他正在使用OS X并且他正在看到我同时(包括“BST”部分)。
result.textContent = new Date(1970, 0, 1).toString();
<div id=result></div>
时区进入它(并且显然会触发错误)的原因是您为该Date
constructor版本提供的值被解释为UTC,但getFullYear
在本地时间返回其值。 / p>
答案 1 :(得分:0)
我在这里遇到了一个错误:我在都柏林,格林尼治标准时间,但是Date()会告诉我
"Fri Nov 07 2014 16:17:25 GMT+2359 (GMT)"
查看时区偏移量。我提前一天(或更好:+00.00减1分钟给出+23.59)。
在Centos 7上的FF31.2.0
我不知道如何克服这个问题:(