aboutsummaryrefslogtreecommitdiff
path: root/src/utils/readable_time.js
blob: 4476952057951e4f218e1f91ce52c3b0730d7185 (plain)
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
35
36
37
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');
  }
};