2015-03-10 6 views
0

У меня есть сценарий, в котором я попытался сделать обратный отсчет, который отсчитывает 30 дней, а затем сбрасывается до 30 дней и начинается снова. Но моя проблема в том, что когда я открываю его в своем браузере (сафари), страница пуста, ничего не отображается на ней, хотя, если я удалю функцию, которую я использую, чтобы сбросить отсчет, он работает, но мне нужно его сбросить.Обратный отсчет не работает

if (seconds_left <= 0){ 
    target_date = target_date + 30 days; 
} 

полный код:

<!DOCTYPE html> 


<html> 

<head> 
</head> 

<body> 

    <span id="countdown"></span> 

    <script LANGUAGE="Javascript"> 

    var target_date = new Date("Apr 9, 2015").getTime(); 

    var days, hours, minutes, seconds; 

    var countdown = document.getElementById("countdown"); 


    if (seconds_left <= 0){ 
      target_date = target_date + 30 days; 
     } 

    setInterval(function() { 

    var current_date = new Date().getTime(); 
    var seconds_left = (target_date - current_date)/1000; 

    days = parseInt(seconds_left/86400); 
    seconds_left = seconds_left % 86400; 

    hours = parseInt(seconds_left/3600); 
    seconds_left = seconds_left % 3600; 

    minutes = parseInt(seconds_left/60); 
    seconds = parseInt(seconds_left % 60); 

    countdown.innerHTML = days + "d, " + hours + "h, " 
    + minutes + "m, " + seconds + "s"; 

    }, 1000); 

</script> 

</body> 

</html> 
+2

'target_date = target_date + 30 days' не имеет никакого смысла в JavaScript. (часть '+ 30 дней') –

+0

' LANGUAGE = "Javascript" '- почему люди все еще используют это ?! – ThiefMaster

ответ

0
<!DOCTYPE html> 
<html> 
    <head></head> 
    <body> 
     <span id="countdown"></span> 

     <script type="text/javascript"> 

     var target_date = new Date("Apr 9, 2015").getTime(); 

     var days, hours, minutes, seconds; 

     var countdown = document.getElementById("countdown"); 

     setInterval(function() { 

      var current_date = new Date().getTime(); 
      var seconds_left = (target_date - current_date)/1000; 

      //the following two lines are moved inside the function 
      if (seconds_left <= 0) 
      { 
       target_date = target_date + 30; //just 30 would suffice to add 30 days 
       seconds_left = (target_date - current_date)/1000; //then update the seconds_left to continue 
      } 

      days = parseInt(seconds_left/86400); 
      seconds_left = seconds_left % 86400; 

      hours = parseInt(seconds_left/3600); 
      seconds_left = seconds_left % 3600; 

      minutes = parseInt(seconds_left/60); 
      seconds = parseInt(seconds_left % 60); 

      countdown.innerHTML = days + "d, " + hours + "h, " 
      + minutes + "m, " + seconds + "s"; 

     }, 1000); 
    </script> 
    </body> 
</html> 
+0

Большое спасибо, я ценю вашу помощь. – DevLiv

Смежные вопросы