2016-10-25 4 views
0

Ich habe einen Countdown-Timer auf meiner Webseite. Aber ich kann es nicht richtig machen.Problem mit Countdown

Ich habe ein Enddatum - es ist 01. März 2017. Und ich habe ein aktuelles Datum:

var now = Date.now() 

Das ist mein ganzer Code für diesen javascript:

CountDownTimer(1488326400000, 'clockdiv'); 

function CountDownTimer(dt, id) 
{ 
    var end = new Date(dt); 
    var _second = 1000; 
    var _minute = _second * 60; 
    var _hour = _minute * 60; 
    var _day = _hour * 24; 
    var timer; 

    var clock = document.getElementById(id); 
    var daysSpan = clock.querySelector('.days'); 
    var hoursSpan = clock.querySelector('.hours'); 
    var minutesSpan = clock.querySelector('.minutes'); 
    var secondsSpan = clock.querySelector('.seconds'); 

    function showRemaining() { 

     if (!Date.now) { 
      Date.now = function() { return new Date().getTime(); } 
     } 
     // var now = new Date(); 
     var now = Date.now() 
     var distance = end - now; 
     if (distance < 0) { 

      clearInterval(timer); 
      document.getElementById(id).innerHTML = 'EXPIRED!'; 

      return; 
     } 

     var days = Math.floor(distance/_day); 
     var hours = Math.floor((distance % _day)/_hour); 
     var minutes = Math.floor((distance % _hour)/_minute); 
     var seconds = Math.floor((distance % _minute)/_second); 

     daysSpan.innerHTML = ('0' + days).slice(-2); 
     hoursSpan.innerHTML = ('0' + hours).slice(-2); 
     minutesSpan.innerHTML = ('0' + minutes).slice(-2); 
     secondsSpan.innerHTML = ('0' + seconds).slice(-2); 

     // document.getElementById(id).innerHTML = days + 'days '; 
     // document.getElementById(id).innerHTML += hours + 'hrs '; 
     // document.getElementById(id).innerHTML += minutes + 'mins '; 
     // document.getElementById(id).innerHTML += seconds + 'secs'; 
    } 

    timer = setInterval(showRemaining, 1000); 
} 

Das Skript zeigt Ich 26 Tage bis zum Enddatum. Das ist nicht richtig. Was ist der Fehler?

+0

Wenn Sie durch diese in einem Debugger Schritt, wo speziell die Werte unterscheiden sich von dem, was Sie erwarten? – David

Antwort

0

Dies wird die Tage bis 2 Zeichen abschneidet:

daysSpan.innerHTML = ('0' + days).slice(-2); 

Just do:

daysSpan.innerHTML = days; 
+0

Vielen Dank! – Egor