Countdown-Timer mit Moment js

Mache ich ein countdown-timer für eine event-Seite, die ich verwendet, moment js.

Hier ist fiddle.

Ich bin die Berechnung der Zeitdifferenz zwischen Ereignis-Datum und aktuellen Datum (Zeitstempel), dann mit "Dauer" - Methode von moment js. Aber die Zeit kommt nicht wie erwartet.
Erwartet - 00:30m:00s
Tatsächlichen - 5h:59m:00s

Code :

<script>
  $(document).ready(function(){

    var eventTime = '1366549200';
    var currentTime = '1366547400';
    var time = eventTime - currentTime;
    var duration = moment.duration(time*1000, 'milliseconds');
    var interval = 1000;

    setInterval(function(){
      duration = moment.duration(duration.asMilliseconds() - interval, 'milliseconds');
      $('.countdown').text(moment(duration.asMilliseconds()).format('H[h]:mm[m]:ss[s]'));
    }, interval);
  });
  </script>

Lese ich die momentjs Dokumentation, um das problem herauszufinden, aber kein Glück.

Vielen Dank für Ihre Zeit.

Update :

Ich am Ende dabei, wie dieser :

<script>
  $(document).ready(function(){

    var eventTime = '1366549200';
    var currentTime = '1366547400';
    var leftTime = eventTime - currentTime;//Now i am passing the left time from controller itself which handles timezone stuff (UTC), just to simply question i used harcoded values.
    var duration = moment.duration(leftTime, 'seconds');
    var interval = 1000;

    setInterval(function(){
      //Time Out check
      if (duration.asSeconds() <= 0) {
        clearInterval(intervalId);
        window.location.reload(true); #skip the cache and reload the page from the server
      }

      //Otherwise
      duration = moment.duration(duration.asSeconds() - 1, 'seconds');
      $('.countdown').text(duration.days() + 'd:' + duration.hours()+ 'h:' + duration.minutes()+ 'm:' + duration.seconds() + 's');
    }, interval);
  });
  </script>

JS Fiddle.

InformationsquelleAutor der Frage Arpit Rawat | 2013-04-21

Schreibe einen Kommentar