Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
89
rated 0 times [  93] [ 4]  / answers: 1 / hits: 26122  / 11 Years ago, thu, july 11, 2013, 12:00:00

I was wondering if there's a simple way, using moment.js library, to transform a decimal time interval (for example, 1.074 minutes) into its equivalent 'mm:ss' value. I am currently using a function which doesn't work too well with negative times (it outputs the value in '-m:ss' format):



function secTommss(sec){
var min = Math.floor(sec/60)
sec = Math.round(Math.abs(sec) % 60);
return min + : + (sec < 10 ? 0 + sec : sec)
}

More From » momentjs

 Answers
6

Here is some JavaScript that will do what you are asking:



function minTommss(minutes){
var sign = minutes < 0 ? - : ;
var min = Math.floor(Math.abs(minutes));
var sec = Math.floor((Math.abs(minutes) * 60) % 60);
return sign + (min < 10 ? 0 : ) + min + : + (sec < 10 ? 0 : ) + sec;
}


Examples:



minTommss(3.5)        // 03:30
minTommss(-3.5) // -03:30
minTommss(36.125) // 36:07
minTommss(-9999.999) // -9999:59


You could use moment.js durations, such as



moment.duration(1.234, 'minutes')


But currently, there's no clean way to format a duration in mm:ss like you asked, so you'd be re-doing most of that work anyway.


[#77057] Wednesday, July 10, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
gordonrockym

Total Points: 95
Total Questions: 115
Total Answers: 95

Location: Iraq
Member since Sat, Apr 16, 2022
2 Years ago
;