s
with the appropriate values to obtain the appropriate values for hour
, minute
and second
.sign
in a variable to prepend it to the result.Array.prototype.map()
in combination with Math.floor()
and String.prototype.padStart()
to stringify and format each segment.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'
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️