我一直在网页上尝试这段代码,它在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");
}
});
答案 0 :(得分: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();
});