1

ページでこのコードを試してみましたが、Firefox だけでなく Chrome でも問題なく動作しています。

ただし、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 に答える