2014-02-08 41 views
1

此代碼完美地工作,以顏色的日期是過去的顏色和顏色日期從現在起2個星期內。但只有在Firefox中,而不是在IE中,我可以調整代碼,使其在IE中也可以工作嗎?它具有財產以後做的elem.style.color表中的日期顏色在Firefox中,但不是在IE中

渲染工作js fiddle

var parents = document.getElementsByTagName("tr") 

for (var i = 0, ii = parents.length; i < ii; i++) { 
    var parent = parents[i], 
     children = parent.children 

    for (var j = 0, jj = children.length; j < jj; j++) { 
     var elem = children[j] 
     if (j % 3 === 2) { 
      var dateElement = elem.innerHTML; 
      var dateArray = dateElement.split("-"); 
      var prevTime = new Date(dateArray); 
      var thisTime = new Date(); 
      var diff = prevTime.getTime() - thisTime.getTime(); 
      var days = 1000*60*60*24; 
      var diffInDays = Math.ceil(diff/days); 
      if (diffInDays < 0) { 
       elem.style.color = "#996600"; 
      } 
      else if (diffInDays <= 14) { 
       elem.style.color = "#e50005 "; 
      } 
     } 
    } 
} 

回答

1

的問題是與Internet Explorer中的無效日期格式。

這是一個更新的Jsfiddle,也適用於IE。在IE中使用Date構造函數中的數組會導致日期無效。另請參閱此問題Passing an array to the Javascript Date constructor, is it standard?

var parents = document.getElementsByTagName("tr") 

for (var i = 0, ii = parents.length; i < ii; i++) { 
    var parent = parents[i], 
     children = parent.children 

    for (var j = 0, jj = children.length; j < jj; j++) { 
     var elem = children[j] 
     if (j % 3 === 2) { 
      var dateElement = elem.innerHTML; 
      var dateArray = dateElement.split("-");  
      var prevTime = new Date(dateArray[0],dateArray[1]-1,dateArray[2]); 
      var thisTime = new Date(); 
      var diff = prevTime.getTime() - thisTime.getTime(); 
      var days = 1000*60*60*24; 
      var diffInDays = Math.ceil(diff/days); 
      if (diffInDays < 0) { 
       elem.style.color = "#ffa500"; 
      } 
      else if (diffInDays <= 14) { 
       elem.style.color = "#ff0000"; 
      } 
     } 
    } 
} 
+0

Thx很多,究竟需要什麼 – Johan

相關問題