Repository navigation
Expand file tree
/
Copy pathutils.js
More file actions
32 lines (29 loc) · 1.4 KB
/
Copy pathutils.js
File metadata and controls
32 lines (29 loc) · 1.4 KB
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
const pluralize = (count, noun, suffix = 's') => `${count} ${noun}${count !== 1 ? suffix : ''}`;
function timeSinceDate(date) {
const seconds = Math.floor((new Date() - date) / 1000);
let interval = seconds / 31536000;
if (interval > 1) return pluralize(Math.floor(interval), 'year') + ' ago';
interval = seconds / 2592000;
if (interval > 1) return pluralize(Math.floor(interval), 'month') + ' ago';
interval = seconds / 86400;
if (interval > 1) return pluralize(Math.floor(interval), 'day') + ' ago';
interval = seconds / 3600;
if (interval > 1) return pluralize(Math.floor(interval), 'hour') + ' ago';
interval = seconds / 60;
if (interval > 1) return pluralize(Math.floor(interval), 'minute') + ' ago';
return pluralize(Math.floor(interval), 'second') + ' ago';
}
function timeSinceSeconds(seconds) {
let interval = seconds / 31536000;
if (interval > 1) return pluralize(Math.floor(interval), 'year');
interval = seconds / 2592000;
if (interval > 1) return pluralize(Math.floor(interval), 'month');
interval = seconds / 86400;
if (interval > 1) return pluralize(Math.floor(interval), 'day');
interval = seconds / 3600;
if (interval > 1) return pluralize(Math.floor(interval), 'hour');
interval = seconds / 60;
if (interval > 1) return pluralize(Math.floor(interval), 'minute');
return pluralize(Math.floor(interval), 'second') + ' ago';
}
module.exports = { pluralize, timeSinceDate, timeSinceSeconds };