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';
|
|
}
|
|
} |