34 lines
932 B
JavaScript
34 lines
932 B
JavaScript
![]() |
// default time format
|
||
|
|
||
|
// format a number of seconds into hours and minutes as appropriate
|
||
|
module.exports = function formatTime(t, options, roundToMultipleOf){
|
||
|
function round(input) {
|
||
|
if (roundToMultipleOf) {
|
||
|
return roundToMultipleOf * Math.round(input / roundToMultipleOf);
|
||
|
} else {
|
||
|
return input
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// leading zero padding
|
||
|
function autopadding(v){
|
||
|
return (options.autopaddingChar + v).slice(-2);
|
||
|
}
|
||
|
|
||
|
// > 1h ?
|
||
|
if (t > 3600) {
|
||
|
return autopadding(Math.floor(t / 3600)) + 'h' + autopadding(round((t % 3600) / 60)) + 'm';
|
||
|
|
||
|
// > 60s ?
|
||
|
} else if (t > 60) {
|
||
|
return autopadding(Math.floor(t / 60)) + 'm' + autopadding(round((t % 60))) + 's';
|
||
|
|
||
|
// > 10s ?
|
||
|
} else if (t > 10) {
|
||
|
return autopadding(round(t)) + 's';
|
||
|
|
||
|
// default: don't apply round to multiple
|
||
|
}else{
|
||
|
return autopadding(t) + 's';
|
||
|
}
|
||
|
}
|