Convert seconds to minutes and seconds in MM:SS format

4k Views Asked by At

I want to convert seconds to minutes and seconds in the format MM:SS . The below code is working fine but converting seconds to M:SS format. How can I change it to MM:SS format.

For example, when passing 150 seconds to format(150) giving 2:30 but i need it like 02:30

 function format(time) {   
        // Hours, minutes and seconds
        var hrs = ~~(time / 3600);
        var mins = ~~((time % 3600) / 60);
        var secs = ~~time % 60;
    
        // Output like "1:01" or "4:03:59" or "123:03:59"
        var ret = "";
        if (hrs > 0) {
            ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
        }
        ret += "" + mins + ":" + (secs < 10 ? "0" : "");
        ret += "" + secs;
        return ret;
    }
3

There are 3 best solutions below

0
On BEST ANSWER

You could use padStart for min

ret += "" + String(mins).padStart(2, '0') + ":" + (secs < 10 ? "0" : "");

function format(time) {
  // Hours, minutes and seconds
  var hrs = ~~(time / 3600);
  var mins = ~~((time % 3600) / 60);
  var secs = ~~time % 60;

  // Output like "1:01" or "4:03:59" or "123:03:59"
  var ret = "";
  if (hrs > 0) {
      ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
  }
  ret += "" + String(mins).padStart(2, '0') + ":" + (secs < 10 ? "0" : "");
  ret += "" + secs;
  return ret;
}

console.log(format(150))

0
On

You can use this

ret = (hrs>0?("" + hrs + ":"):"") + (mins < 10 ? "0"+mins : mins) + ":" + (secs < 10 ? "0"+secs : secs);
1
On

Let try:

ret = (hrs ? hrs + ":" : '') + ("0" + mins).slice(-2) + ":" + ("0" + secs).slice(-2)

Goodluck :D