aboutsummaryrefslogtreecommitdiff
path: root/src/utils/readable_time.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/readable_time.js')
-rw-r--r--src/utils/readable_time.js38
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');
+ }
+};