1

我一直在页面上尝试这段代码,它在 Chrome 和 Firefox 中运行良好。

但不是在 Internet Explorer 中,只会显示 if 条件中的警报功能。

$('#element-14').change(
 function(){
  $('.late').hide();
  $('.normal').hide();
  var tempDate= new Date();
  var dateViolatetmp = $('#element-14').val();
  var dateViolatearr = dateViolatetmp.split('/');
  var dateViolate= new Date(dateViolatearr[2],(parseInt(dateViolatearr[0],10)-1).toString(),dateViolatearr[1]);
  var one_day=1000*60*60*24;
  var tempDate_unixtime =tempDate.getTime() ;
  var dateViolate_unixtime =dateViolate.getTime();
  var dayDifference = Math.round((tempDate_unixtime/one_day)) - Math.round((dateViolate_unixtime/one_day));
  if(dayDifference<=30){    
    $('.normal').show();
    alert("ok1");
  }
  else{
    $('.late').show();
    alert("ok2");
  }
 });    
4

1 回答 1

0

您是否使用此代码在控制台中看到了预期的所有值?我写if(console)条件的原因是因为我不确定它是否存在于 IE 中(否则不会让我感到惊讶(!)而且我没有安装它)。

$('#element-14').change(function() {
    if (console) console.log('#element-14 changed.');
    $('.late, .normal').hide();
    var arr = $('#element-14').val().split('/');
    if (console) {
        console.log('val:',$('#element-14').val());
        console.log('arr:',arr);
    }
    var dateV = new Date(parseInt(arr[2]), parseInt(arr[0])-1, arr[1]);
    if (console) console.log('dateV:',dateV);
    var one_day = 1000*60*60*24;
    var now = new Date();
    if (console) console.log('now:',now);
    var dayDiff = Math.round((now.getTime()-dateV.getTime()) / one_day);
    if (console) console.log('dayDiff:',dayDiff);
    $(dayDiff <= 30 ? '.normal' : '.late').show();
});
于 2012-10-31T01:03:16.667 回答