'How can I convert milliseconds to "hhmmss" format using javascript?

I am using javascript Date object trying to convert millisecond to how many hour, minute and second it is.

I have the currentTime in milliseconds

var currentTime = new Date().getTime()

and I have futureTime in milliseconds

var futureTime = '1432342800000'

I wanted to get difference in millisecond

var timeDiff = futureTime - currentTime

the the timeDiff was

timeDiff = '2568370873'

I want to know how many hours, minutes, seconds it is.

Could anyone help?



Solution 1:[1]

If you are confident that the period will always be less than a day you could use this one-liner:

new Date(timeDiff).toISOString().slice(11,19)   // HH:MM:SS

N.B. This will be wrong if timeDiff is greater than a day.

Solution 2:[2]

Convert ms to hh:mm:ss

function millisecondsToHuman(ms) {
  const seconds = Math.floor((ms / 1000) % 60);
  const minutes = Math.floor((ms / 1000 / 60) % 60);
  const hours = Math.floor((ms  / 1000 / 3600 ) % 24)

  const humanized = [
    pad(hours.toString(), 2),
    pad(minutes.toString(), 2),
    pad(seconds.toString(), 2),
  ].join(':');

  return humanized;
}
=

Solution 3:[3]

function msToHMS( duration ) {

     var milliseconds = parseInt((duration % 1000) / 100),
        seconds = parseInt((duration / 1000) % 60),
        minutes = parseInt((duration / (1000 * 60)) % 60),
        hours = parseInt((duration / (1000 * 60 * 60)) % 24);

      hours = (hours < 10) ? "0" + hours : hours;
      minutes = (minutes < 10) ? "0" + minutes : minutes;
      seconds = (seconds < 10) ? "0" + seconds : seconds;

      return hours + ":" + minutes + ":" + seconds ;
}

Solution 4:[4]

Converts milliseconds to a string in the format hh:mm:ss. Here's my version:

function HHMMSSFromMilliseconds(ms) {
  // 1- Convert to seconds:
  var seconds = ms / 1000;

  // 2- Extract hours:
  var hours = parseInt(seconds / 3600); // 3600 seconds in 1 hour
  seconds = parseInt(seconds % 3600); // extract the remaining seconds after extracting hours

  // 3- Extract minutes:
  var minutes = parseInt(seconds / 60); // 60 seconds in 1 minute

  // 4- Keep only seconds not extracted to minutes:
  seconds = parseInt(seconds % 60);

  // 5 - Format so it shows a leading zero if needed
  let hoursStr = ("00" + hours).slice(-2);
  let minutesStr = ("00" + minutes).slice(-2);
  let secondsStr = ("00" + seconds).slice(-2);

  return hoursStr + ":" + minutesStr + ":" + secondsStr
}

let timespan = 23570 * 1000;
let formattedTime = HHMMSSFromMilliseconds(timespan);

console.log(formattedTime);

Solution 5:[5]

The difference in time is in milliseconds: Get time difference between two dates in seconds

to get the difference you have to use math.floor() http://www.w3schools.com/jsref/jsref_floor.asp

var secDiff = Math.floor(timeDiff / 1000); //in s
var minDiff = Math.floor(timeDiff / 60 / 1000); //in minutes
var hDiff = Math.floor(timeDiff / 3600 / 1000); //in hours

Solution 6:[6]

var timediff = futureTime - currentTime
long seconds = (long) (timediff / 1000) % 60 ;
long minutes = (long) ((timediff / (1000*60)) % 60);
long hours   = (long) ((timediff / (1000*60*60)) % 24);
if(hours>0)
    time = hours+" hrs : "+minutes+" mins";
else if(minutes>0)
    time = minutes+" mins";
else if(seconds>0)
    time = seconds+" secs";

Solution 7:[7]

Here is a simple function

function simplifiedMilliseconds(milliseconds) {

  const totalSeconds = parseInt(Math.floor(milliseconds / 1000));
  const totalMinutes = parseInt(Math.floor(totalSeconds / 60));
  const totalHours = parseInt(Math.floor(totalMinutes / 60));
  const days = parseInt(Math.floor(totalHours / 24));

  const seconds = parseInt(totalSeconds % 60);
  const minutes = parseInt(totalMinutes % 60);
  const hours = parseInt(totalHours % 24);

  let time = '1s';
  if (days > 0) {
    time = `${days}d:${hours}h:${minutes}m:${seconds}s`;
  } else if (hours > 0) {
    time = `${hours}h:${minutes}m:${seconds}s`;
  } else if (minutes > 0) {
    time = `${minutes}m:${seconds}s`;
  } else if (seconds > 0) {
    time = `${seconds}s`;
  }
  return time;
}

Solution 8:[8]

Convert millis to DD(days):HH:MM:SS

function formatTime(timeMS) {
    const [MS_IN_SEC, SEC_IN_DAY, SEC_IN_HOUR, SEC_IN_MIN] = [1000, 86400, 3600, 60];
    let seconds = Math.round(Math.abs(timeMS) / MS_IN_SEC);
    const days = Math.floor(seconds / SEC_IN_DAY);
    seconds = Math.floor(seconds % SEC_IN_DAY);
    const hours = Math.floor(seconds / SEC_IN_HOUR);
    seconds = Math.floor(seconds % SEC_IN_HOUR);
    const minutes = Math.floor(seconds / SEC_IN_MIN);
    seconds = Math.floor(seconds % SEC_IN_MIN);
    const [dd, hh, mm, ss] = [days, hours, minutes, seconds]
        .map(item => item < 10 ? '0' + item : item.toString());
    return dd + ':' + hh + ':' + mm + ':' + ss;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 tdbit
Solution 2 Community
Solution 3 Palsri
Solution 4 rky
Solution 5 Community
Solution 6 Piyush Srivastava
Solution 7 Jay Dadhaniya
Solution 8