-
Notifications
You must be signed in to change notification settings - Fork 84
/
Copy pathformat-time.js
34 lines (28 loc) · 932 Bytes
/
format-time.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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';
}
}