aboutsummaryrefslogtreecommitdiff
path: root/src/utils/moments.ts
blob: 9e8cc3322721aa6582a694fb6b9d699dfc15596c (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import moment from 'moment';

/**
 * Formats elapsed time from a given time.
 * @param date_time given time
 * @returns difference in the largest possible unit of time (days > hours > minutes > seconds)
 */
export const getTimePosted = (date_time: string) => {
  const datePosted = moment(date_time);
  const now = moment();
  var time = date_time;
  var difference = now.diff(datePosted, 'seconds');

  // Creating elapsedTime string to display to user
  // 0 to less than 1 minute
  if (difference < 60) {
    time = difference + ' seconds';
  }
  // 1 minute to less than 1 hour
  else if (difference >= 60 && difference < 60 * 60) {
    difference = now.diff(datePosted, 'minutes');
    time = difference + 'm ago';
  }
  // 1 hour to less than 1 day
  else if (difference >= 60 * 60 && difference < 24 * 60 * 60) {
    difference = now.diff(datePosted, 'hours');
    time = difference + 'h ago';
  }
  // Any number of days
  else if (difference >= 24 * 60 * 60 && difference < 24 * 60 * 60 * 3) {
    difference = now.diff(datePosted, 'days');
    time = difference + 'd ago';
  }
  // More than 3 days
  else if (difference >= 24 * 60 * 60 * 3) {
    time = datePosted.format('M-D-YYYY');
  }
  return time;
};

export const getTimeInShorthand = (date_time: string) => {
  const datePosted = moment(date_time);
  const now = moment();
  var time = date_time;
  var difference = now.diff(datePosted, 's');

  // Creating elapsedTime string to display to user
  // 0 to less than 1 minute
  if (difference < 60) {
    time = difference + 's';
  }
  // 1 minute to less than 1 hour
  else if (difference >= 60 && difference < 60 * 60) {
    difference = now.diff(datePosted, 'm');
    time = difference + 'm';
  }
  // 1 hour to less than 1 day
  else if (difference >= 60 * 60 && difference < 24 * 60 * 60) {
    difference = now.diff(datePosted, 'h');
    time = difference + 'h';
  }
  // Any number of days
  else if (difference >= 24 * 60 * 60 && difference < 24 * 60 * 60 * 7) {
    difference = now.diff(datePosted, 'd');
    time = difference + 'd';
  }
  // More than 7 days
  else if (difference >= 24 * 60 * 60 * 7) {
    difference = now.diff(datePosted, 'w');
    time = difference + 'w';
  }
  return time;
};