2015-12-20 3 views
0

У меня проблема с таймером обратного отсчета, сделанным в Javascript, он беспокоился последние 2 недели, , но сегодня он начал показывать NaN: NaN ..., и я могу «Не понимаю, почему ... Вот код, есть ли у кого-нибудь идеи, с которыми можно столкнуться?Count Down Timer показывает NaN

<div id="countdownmain"> 
 
<span id="countdownmain" class="timer"></span> 
 
</div> 
 

 

 
<script> 
 

 
var date = new Date; 
 

 
var secondsnow = date.getSeconds(); 
 
var minutesnow = date.getMinutes(); 
 
var hournow = date.getHours(); 
 
var day = date.getDay(); 
 
    
 
var passatti = (secondsnow + (minutesnow*60) + (hournow*3600)); 
 
if((day==1)||(day==2)||(day==3)||(day==4)){ 
 
    if(passatti < 46800){ 
 
     var upgradeTime = 46800 - passatti; 
 
    }else if(passatti > 46800){ 
 
     var upgradeTime = 86400 - passatti + 46800; 
 
    } 
 
}else if((day==5)&&(passatti < 46800)){ 
 
    var upgradeTime = 46800 - passatti; 
 
}else if((day==5)&&(passatti > 46800)){ 
 
    var upgradeTime = 86400 - passatti + 46800 + 86400 + 86400; 
 
}else if((day==6)){ 
 
    var upgradeTime = 86400 - passatti + 46800 + 86400; 
 
}else if((day==7)){ 
 
    var upgradeTime = 86400 - passatti + 46800; 
 
} 
 

 

 

 
var seconds = upgradeTime; 
 
function timer() { 
 
    
 
    var now = Math.floor(Date.now()/1000); 
 
    
 
('0' + 11).slice(-2) 
 

 
    var days  = Math.floor(seconds/24/60/60); 
 
    var hoursLeft = Math.floor((seconds) - (days*86400)); 
 
    var hours  = Math.floor(hoursLeft/3600); 
 
    var minutesLeft = Math.floor((hoursLeft) - (hours*3600)); 
 
    var minutes  = Math.floor(minutesLeft/60); 
 
    var remainingSeconds = seconds % 60; 
 
    if (remainingSeconds < 10) { 
 
     remainingSeconds = "0" + remainingSeconds; 
 
    } 
 
    document.getElementById('countdownmain').innerHTML = "<span class='timesm'> For same working day dispatch, order in &nbsp; </span><br class='appear'><span style='display:inline-block; width:45px;'><span class='hideDays glowW'>" + ('0' + days).slice(-2) + "</span></span><span class='times'> days </span><span style='display:inline-block; width:45px;'><span class='hideHours glowW'>" + ('0' + hours).slice(-2) + "</span></span><span class='times'> hours </span><span style='display:inline-block; width:45px;'><span class='hideMinutes glowW'>" + ('0' + minutes).slice(-2) + "</span></span><span class='times'> minutes </span><span style='display:inline-block; width:45px;'><span class='hideSec glowW'>" + ('0' + remainingSeconds).slice(-2) + "</span></span><span class='times'> seconds </span>"; 
 
    
 

 

 

 
    if (seconds == 0) { 
 
     clearInterval(countdownTimer); 
 
     //document.getElementById('countdownmain').innerHTML = "Completed"; 
 
     seconds = upgradeTime; 
 
    } else { 
 
     seconds--; 
 
     $('.hideSec').fadeOut('slow'); 
 
    } 
 

 

 
if(('0' + remainingSeconds).slice(-2)==00){ 
 
$('.hideMinutes').fadeOut('slow'); 
 
} 
 

 
if((('0' + minutes).slice(-2)==00)&&(('0' + remainingSeconds).slice(-2)==00)){ 
 
$('.hideHours').fadeOut('slow'); 
 
} 
 

 
if((('0' + hours).slice(-2)==00)&&(('0' + minutes).slice(-2)==00)&&(('0' + remainingSeconds).slice(-2)==00)){ 
 
$('.hideDays').fadeOut('slow'); 
 
} 
 

 

 
} 
 
var countdownTimer = setInterval('timer()', 1000); 
 
</script>

+0

Можете ли вы предоставить скрипку? –

+0

Я не могу воспроизвести проблему в этом скрипте https://jsfiddle.net/eek99mc3/ –

ответ

0

К сожалению, сегодня воскресенье! Javascript return 0 value as first of a week в getDay().

Посмотрите мой fiddle. Я просто уменьшил значение компаратора дня в заявлении if. (например, 1 -> 0, 2 -> 1, 3 -> 2 и т. д.)