Tuesday, October 28, 2014

Get the time difference between two datetimes [Solved]


 var now = "04/09/2013 15:00:00";  
 var then = "04/09/2013 14:20:30";  
 moment.utc(moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")  
 // outputs: "00:39:30"  


But be aware that if you have 24 hours or more, the hours will reset to zero.

If you want to get a valid response for durations of 24 hours or greater, then you'll have to do something like this instead:

  var now = "04/09/2013 15:00:00";   
  var then = "02/09/2013 14:20:30";   
  var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));   
  var d = moment.duration(ms);   
  var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");   
  // outputs: "48:39:30"   


Note that I'm using the utc time as a shortcut. You could pull out d.minutes() and d.seconds()separately, but you would also have to zeropad them.

No comments:

Post a Comment