【发布时间】:2011-08-11 09:50:54
【问题描述】:
显然 javascript 日期对象的方法 getYear() 在 IE8 和 Firefox3.6 之间返回不同的结果(我的机器上有这 2 个,不确定其他浏览器或版本)
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();
}
【问题讨论】:
-
“自 1900 年以来的年份?我猜” 为什么猜?规范免费提供:ecma-international.org/publications/standards/Ecma-262.htm
-
感谢链接,我会看看。
-
msdn.microsoft.com/en-us/library/windows/apps/… 表示不推荐使用 getYear。如果它已被弃用,他们为什么要搞砸它?!
标签: javascript date browser-detection