显然,javascript日期对象的方法getYear()在IE8和Firefox3.6之间返回不同的结果(我的机器上有那两个,不确定其他浏览器或版本)

Date d = new Date();
alert(d.getYear());

FF3.6 ==> 111 (year since 1900? i guess)
IE8 ===> 2011

我仅在Firefox上进行过测试,现在由于我的编码,用于调整getYear()返回值的Javascript代码现在给了我3911。
var modified = d.getYear() + 1900

在Firefox上,它返回2011。但是,如果我在IE8上应用此方法,则它将返回3911。

我可以添加逻辑来区分IE和Firefox,但我不想在代码中的任何地方(例如与浏览器相关的部分)添加if/else。还有其他方法可以解决此问题吗?
var browserName=navigator.appName;

if (browserName=="Netscape") {
   var modified = d.getYear() + 1900
}
else if(browserName=="Microsoft Internet Explorer") {
   var modified = d.getYear();
}

最佳答案

使用 getFullYear() 而不是getYear()

09-27 05:06