javascriptdatetime

Javascript return number of days,hours,minutes,seconds between two dates


Does anyone can link me to some tutorial where I can find out how to return days , hours , minutes, seconds in javascript between 2 unix datetimes?

I have:

var date_now = unixtimestamp;
var date_future = unixtimestamp;

I would like to return (live) how many days,hours,minutes,seconds left from the date_now to the date_future.


Solution

  • Just figure out the difference in seconds (don't forget JS timestamps are actually measured in milliseconds) and decompose that value:

    // get total seconds between the times
    var delta = Math.abs(date_future - date_now) / 1000;
    
    // calculate (and subtract) whole days
    var days = Math.floor(delta / 86400);
    delta -= days * 86400;
    
    // calculate (and subtract) whole hours
    var hours = Math.floor(delta / 3600) % 24;
    delta -= hours * 3600;
    
    // calculate (and subtract) whole minutes
    var minutes = Math.floor(delta / 60) % 60;
    delta -= minutes * 60;
    
    // what's left is seconds
    var seconds = delta % 60;  // in theory the modulus is not required
    

    EDIT code adjusted because I just realised that the original code returned the total number of hours, etc, not the number of hours left after counting whole days.