一尘不染

为什么Javascript getYear()返回108?

javascript

为什么此javascript返回108而不是2008?它得到正确的日期和月份,但不正确的年份?

myDate = new Date();
year = myDate.getYear();

year= 108?


阅读 378

收藏
2020-05-01

共1个答案

一尘不染

这是一个Y2K问题,仅计算自1900年以来的年份。

有迹象表明,目前潜在的兼容性问题getYear()已经被弃用,取而代之的getFullYear()-从怪异模式:

为了使事情变得更加复杂,如今不建议使用date.getYear(),而应使用date.getFullYear(),而旧版本的浏览器则不支持。如果有效,则应始终给出整年,即。2000,而不是100。

您的浏览器用以下两种方法给出了以下年份:

* The year according to getYear(): 108
* The year according to getFullYear(): 2008

还有InternetExplorer和Firefox之间实现差异,如IE的实施getYear()已更改为表现得像getFullYear()-从IBM:

根据ECMAScript规范,getYear返回的年份为减去1900的年份,其原本打算在1998年返回“
98”。getYear在ECMAScript版本3中已弃用,并由getFullYear()代替。

Internet Explorer更改了getYear()以使其类似于getFullYear()并使其与Y2k兼容,而Mozilla保留了标准行为。

2020-05-01