javascript date getYear()在IE和Firefox之间返回不同的结果,如何处理?

mas*_*san 8 javascript date browser-detection

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

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

FF3.6 ==> 111 (year since 1900? i guess)
IE8 ===> 2011
Run Code Online (Sandbox Code Playgroud)

我一直只在Firefox上测试,现在我调整getYear()的返回值的Javascript代码现在因为我的编码而给了我3911.

var modified = d.getYear() + 1900
Run Code Online (Sandbox Code Playgroud)

在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();
}
Run Code Online (Sandbox Code Playgroud)

psy*_*ott 20

使用.getFullYear()而不是.getYear()

  • Firefox正在*完全按照规范说它应该做的事情. (4认同)

Nar*_*iya 8

尝试使用getFullYear()而不是getYear