谷歌浏览器和IE下new Date()注意的一个小地方
2010-09-27 13:48 cnb_mtime 阅读(941) 评论(0) 编辑 收藏 举报今天子啊谷歌浏览器运行了一下以前的程序,发现new Date()显示的不一样:例如
谷歌浏览器中显示:110年5月18日,在IE浏览器中显示:2010年5月18日。
这个问题是因为 javascript 的兼容性问题
var now = new date();
var year = now.getYear();
在 大部分非IE 里面 getYear 返回的是 "当前年份-1900" 的值 , 这个根据JavaScript的国际标准 ECMAScript (http://www.mozilla.org/js/language/E262-3.pdf)来实现了.
在最新的ECMAScript标准里(http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf), 建议大家使用getFullYear()来替代getYear.
但是IE没有按标准实现, 它的行为是:
如果当前年份为1900-1999,函数将返回减去1900的数值,此数值为两位
其它的年份,函数将返回四位年份
例如如果当前是1976年,函数返回76;如果当前是2010年,函数返回2010所以最好的解决方案是,使用getFullYear()来替代getYear 以获得对所有浏览器的兼容性支持