-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
/
date.js
85 lines (83 loc) · 4.65 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// 格式化 类型这个的时间 , 几分钟前 | 几小时前 | 几天前 | 几月前 | 几年前 | 具体的格式不对的时间
const serverOffset = new Date().getTimezoneOffset() / 60;
module.exports = (html, timeZone = -serverOffset) => {
let math;
let date = new Date();
if (/(\d+)分钟前/.exec(html)) {
math = /(\d+)分钟前/.exec(html);
date.setMinutes(date.getMinutes() - math[1]);
date.setSeconds(0);
} else if (/(\d+)小时前/.exec(html)) {
math = /(\d+)小时前/.exec(html);
date.setHours(date.getHours() - math[1]);
} else if (/(\d+)天前/.exec(html)) {
math = /(\d+)天前/.exec(html);
date.setDate(date.getDate() - math[1]);
} else if (/(\d+)月前/.exec(html)) {
math = /(\d+)月前/.exec(html);
date.setMonth(date.getMonth() - math[1]);
} else if (/(\d+)年前/.exec(html)) {
math = /(\d+)年前/.exec(html);
date.setFullYear(date.getFullYear() - math[1]);
} else if (/今天\s*(\d+):(\d+)/.exec(html)) {
math = /今天\s*(\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), math[1], math[2]);
} else if (/昨天\s*(\d+):(\d+)/.exec(html)) {
math = /昨天\s*(\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, math[1], math[2]);
} else if (/前天\s*(\d+):(\d+)/.exec(html)) {
math = /前天\s*(\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 2, math[1], math[2]);
} else if (/(\d+)年(\d+)月(\d+)日(\d+)时/.exec(html)) {
math = /(\d+)年(\d+)月(\d+)日(\d+)时/.exec(html);
date = new Date(parseInt(math[1]), parseInt(math[2]) - 1, parseInt(math[3]), parseInt(math[4]));
} else if (/(\d+)年(\d+)月(\d+)日/.exec(html)) {
math = /(\d+)年(\d+)月(\d+)日/.exec(html);
date = new Date(parseInt(math[1]), parseInt(math[2]) - 1, parseInt(math[3]));
} else if (/(\d+)-(\d+)-(\d+) (\d+):(\d+)/.exec(html)) {
math = /(\d+)-(\d+)-(\d+) (\d+):(\d+)/.exec(html);
date = new Date(math[1], parseInt(math[2]) - 1, math[3], math[4], math[5]);
} else if (/(\d+)-(\d+) (\d+):(\d+)/.exec(html)) {
math = /(\d+)-(\d+) (\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
} else if (/(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+):(\d+)/.exec(html)) {
math = /(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+):(\d+)/.exec(html);
date = new Date(math[1], parseInt(math[2]) - 1, math[3], math[4], math[5], math[6]);
} else if (/(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html)) {
math = /(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html);
date = new Date(math[1], parseInt(math[2]) - 1, math[3], math[4], math[5]);
} else if (/(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html)) {
math = /(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
} else if (/(\d+)月(\d+)日 (\d+):(\d+)/.exec(html)) {
math = /(\d+)月(\d+)日 (\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
} else if (/(\d+)月(\d+)日 (\d+)时(\d+)分/.exec(html)) {
math = /(\d+)月(\d+)日 (\d+)时(\d+)分/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
} else if (/(\d+)月(\d+)日/.exec(html)) {
math = /(\d+)月(\d+)日/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
} else if (/(\d+)月(\d+)号/.exec(html)) {
math = /(\d+)月(\d+)号/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
} else if (/(\d+)\/(\d+)/.exec(html)) {
math = /(\d+)\/(\d+)/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
} else if (/(\d+)-(\d+)-(\d+)/.exec(html)) {
math = /(\d+)-(\d+)-(\d+)/.exec(html);
date = new Date(math[1], parseInt(math[2]) - 1, math[3]);
} else if (/(\d+)-(\d+)/.exec(html)) {
math = /(\d+)-(\d+)/.exec(html);
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
} else if (/(\d+):(\d+)/.exec(html)) {
math = /(\d+):(\d+)/.exec(html);
date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), math[1], math[2]);
} else if (/刚刚/.exec(html)) {
math = /刚刚/.exec(html);
}
if (math) {
return new Date(date.getTime() - 60 * 60 * 1000 * (timeZone + serverOffset)).toUTCString();
}
return html;
};