| 1 | function zeroPad(x) { |
| 2 | return (x < 10 ? "0" : "") + x; |
| 3 | } |
| 4 | |
| 5 | export function getDate(d) { |
| 6 | return ( |
| 7 | d.getFullYear() + |
| 8 | "-" + |
| 9 | zeroPad(d.getMonth() + 1) + |
| 10 | "-" + |
| 11 | zeroPad(d.getDate()) |
| 12 | ); |
| 13 | } |
| 14 | |
| 15 | export function getTime(d) { |
| 16 | return ( |
| 17 | zeroPad(d.getHours()) + |
| 18 | ":" + |
| 19 | zeroPad(d.getMinutes()) + |
| 20 | ":" + |
| 21 | zeroPad(d.getSeconds()) |
| 22 | ); |
| 23 | } |
| 24 | |
| 25 | function padDigits(x) { |
| 26 | if (x < 10) return "0" + x; |
| 27 | return x; |
| 28 | } |
| 29 | |
| 30 | export function ppt(t) { |
| 31 | // "Pretty print" an amount of time given in seconds |
| 32 | const dayInSeconds = 60 * 60 * 24; |
| 33 | const hourInSeconds = 60 * 60; |
| 34 | let days = Math.floor(t / dayInSeconds); |
| 35 | const hours = Math.floor((t % dayInSeconds) / hourInSeconds); |
| 36 | const minutes = Math.floor((t % hourInSeconds) / 60); |
| 37 | const seconds = Math.floor(t % 60); |
| 38 | let res = ""; |
| 39 | // NOTE: 3 days limit is rather arbitrary |
| 40 | if (days >= 3 && hours >= 12) days++; |
| 41 | if (days > 0) res += days + "d "; |
| 42 | if (days < 3 && hours > 0) res += hours + "h "; |
| 43 | if (days == 0 && minutes > 0) |
| 44 | res += hours > 0 ? padDigits(minutes) + "m " : minutes + ":"; |
| 45 | if (days == 0 && hours == 0) { |
| 46 | res += padDigits(seconds); |
| 47 | // Seconds indicator, since this is the only number printed: |
| 48 | if (minutes == 0) res += "s"; |
| 49 | } |
| 50 | return res.trim(); //remove potential last space |
| 51 | } |