diff options
Diffstat (limited to 'src/utils/readable_time.js')
| -rw-r--r-- | src/utils/readable_time.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/utils/readable_time.js b/src/utils/readable_time.js new file mode 100644 index 0000000..4476952 --- /dev/null +++ b/src/utils/readable_time.js @@ -0,0 +1,38 @@ +const internals = { + magnitudes: { + day: 86400000, + hour: 3600000, + minute: 60000, + second: 1000 + }, + labels: { + day: 'time.days', + hour: 'time.hours', + minute: 'time.minutes', + second: 'time.seconds' + }, + + makeTimeReadable(time, magnitude) { + + return { + count: Math.floor(time / internals.magnitudes[magnitude]), + label: internals.labels[magnitude] + }; + } +}; + +export const readableTime = function readableTime(time) { + + switch (true) { + case time >= internals.magnitudes.day: + return internals.makeTimeReadable(time, 'day'); + case time >= internals.magnitudes.hour: + return internals.makeTimeReadable(time, 'hour'); + case time >= internals.magnitudes.minute: + return internals.makeTimeReadable(time, 'minute'); + case time < 0: + return internals.makeTimeReadable(0, 'second'); + default: + return internals.makeTimeReadable(time, 'second'); + } +}; |