944 B
944 B
title, tags
| title | tags |
|---|---|
| formatSeconds | date,math,string,intermediate |
Returns the ISO format of the given number of seconds.
- Divide
swith the appropriate values to obtain the appropriate values forhour,minuteandsecond. - Store the
signin a variable to prepend it to the result. - Use
Array.prototype.map()in combination withArray.prototype.floor()andString.prototype.padStart()to stringify and format each segment. - Use
String.prototype.join(':')to combine the values into a string.
const formatSeconds = s => {
const [hour, minute, second, sign] =
s > 0
? [s / 3600, (s / 60) % 60, s % 60, '']
: [-s / 3600, (-s / 60) % 60, -s % 60, '-'];
return (
sign +
[hour, minute, second]
.map(v => `${Math.floor(v)}`.padStart(2, '0'))
.join(':')
);
};
formatSeconds(200); // '00:03:20'
formatSeconds(-200); // '-00:03:20'
formatSeconds(99999); // '27:46:39'