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
| export function parseTime(time, pattern) {
| if (arguments.length === 0 || !time) {
| return null
| }
| const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
| let date
| if (typeof time === 'object') {
| date = time
| } else {
| if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
| time = parseInt(time)
| } else if (typeof time === 'string') {
| time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
| }
| if ((typeof time === 'number') && (time.toString().length === 10)) {
| time = time * 1000
| }
| date = new Date(time)
| }
| const formatObj = {
| y: date.getFullYear(),
| m: date.getMonth() + 1,
| d: date.getDate(),
| h: date.getHours(),
| i: date.getMinutes(),
| s: date.getSeconds(),
| a: date.getDay(),
| }
| return format.replace(/{([ymdhisa])+}/g, (result, key) => {
| let value = formatObj[key]
| // Note: getDay() returns 0 on Sunday
| if (key === 'a') {
| return ['日', '一', '二', '三', '四', '五', '六'][value]
| }
| if (result.length > 0 && value < 10) {
| value = '0' + value
| }
| return value || 0
| })
| }
|
|