-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdate.js
51 lines (48 loc) · 1.64 KB
/
date.js
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
const _dateJs = require('datejs')
module.exports = {
parseTime: function (dateStr) {
if (dateStr.length == 7) { // 9:20 AM
return Date.parse(dateStr)
} else if (dateStr.includes('Yesterday')) { // Yesterday, 9:20 AM
let parts = dateStr.split(', ')
let date = new Date()
date.setDate(date.getDate() - 1)
let time = convertTime12to24(parts[1])
date.setHours(time.getHours())
date.setMinutes(time.getMinutes())
return date
} else if (countInstances(dateStr, ',') == 2) { // Dec 22, 2020, 9:11 PM
let parts = dateStr.split(', ')
let date = Date.parse(parts[0])
date.setYear(parts[1])
let time = convertTime12to24(parts[2])
date.setHours(time.getHours())
date.setMinutes(time.getMinutes())
return date
} else { // Tue 9:31 PM
let parts = dateStr.split(' ')
let date = Date.parse("last " + parts[0])
let time = convertTime12to24(parts[1] + ' ' + parts[2])
date.setHours(time.getHours())
date.setMinutes(time.getMinutes())
return date
}
}
}
function countInstances(string, word) {
return string.split(word).length - 1;
}
function convertTime12to24(time12h) {
const [time, modifier] = time12h.split(' ');
let [hours, minutes] = time.split(':');
if (hours === '12') {
hours = '00';
}
if (modifier === 'PM') {
hours = parseInt(hours, 10) + 12;
}
let date = new Date()
date.setHours(hours)
date.setMinutes(minutes)
return date
}