firefox 与IE 对 js获取当前年份的兼容问题

     最近在做报表的工作,在项目中有需要通过年份查找数据的需求,这个功能实现起来比较简单

   js代码如下:
  
function createYearLetter(){
   //获得年份
   var myDate = new Date();
   var year =myDate.getYear();
     for ( var i = 0; i< 6 ; i++){
    var newYear = parseInt(year) - i + 3;
    itemsArray[i] = {name: "02文书文件--" + newYear ,value:newYear};
   }
}
在IE上观察数据的时候没问题显示正常,可是当我在firefox调试样式的时候发现数据出现问题。
firefox 与IE 对 js获取当前年份的兼容问题_第1张图片
数据的样式变成这样的了,我希望得到的数据时 “02文书文件--2016”这样的但是在firefox却是如上图。
经过查询资料发现造成该原因是 javascript 的兼容性问题

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

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

    所以在IE下显示就正常了,修改也简单就是需要加一个判断。

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

 最后代码如下:

 

function createYearLetter(){
   //获得年份
   var myDate = new Date();
   var year =myDate.getYear();
     for ( var i = 0; i< 6 ; i++){
    var newYear = parseInt(year) - i + 3;
    itemsArray[i] = {name: "02文书文件--" + newYear ,value:newYear};
   }
}

最后在firefox显示正常了:

firefox 与IE 对 js获取当前年份的兼容问题_第2张图片

 
 

你可能感兴趣的:(firefox 与IE 对 js获取当前年份的兼容问题)