Momentjs and countdown timer

javascript, jquery, momentjs

Solution

`duration` object represents a static period, and it does not increase/decrease with the flow of time. So if you what to decrease it you have to do it yourself, for example creating a kind of a seconds counter or recreating `duration` object every time. Here is the code for the second option:

var time = 7200;
var duration = moment.duration(time * 1000, 'milliseconds');
var interval = 1000;

setInterval(function(){
  duration = moment.duration(duration.asMilliseconds() - interval, 'milliseconds');
  //show how many hours, minutes and seconds are left
  $('.countdown').text(moment(duration.asMilliseconds()).format('h:mm:ss'));
}, interval);

Problem

I found the Momentjs library which is pretty cool, however I don't find the documentation to be very clear on how to achieve some simple tasks. I'm trying to build a countdown timer and I'm guessing I should use the duration object, but I don't quite understand how (maybe due to the fact that English isn't my first language). Anyways this is what I want: ``` var time = 7200; var duration = moment.duration('seconds',time); setInterval(function(){ //show how many hours, minutes and secods are left $('.countdown').text(duration.format('h:mm:ss')); //this doesn't work because there's no method format for the duration object. },1000); ``` So everysecond it should display: 02:00:00 01:59:59 01:59:58 01:59:57 ... 00:00:00 How would I achieve this result with the Momentjs library? Thanks!

Original source