YOYO的最新BLOG文章

Aug
27

今天在写一个js日期的时候,发现getYear()在Firefox中测试时是个三位数的108,而在ie里面是正常的怪怪的。明明是2008,这是怎么回事呢?

经过查询相关资料,我发现原因是 javascript 的兼容性问题

var today = new date();
var year = today.getYear();

在 Firefox 里面 getYear 返回的是 “当前年份-1900″ 的值 (以前都如此)
而微软很NB的做了一个改动:
当today的年份大于等于2000的时候 直接把1900加上了 返回的 200X (而不是10X)
如:today年份是1999 返回99
today年份是2000 返回2000

一个简单的解决是加一个判断:
year = (year<1900?(1900+year):year);

也有另外的方法
通过 getFullYear getUTCFullYear 去调用
var year = today.getFullYear();在IE,FireFox都适用。