blob: ff8416306408829263b04bfee41f70ac9f956a55 (
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
|
function dateLongFormatter(pattern, formatLong) {
switch (pattern) {
case 'P':
return formatLong.date({ width: 'short' })
case 'PP':
return formatLong.date({ width: 'medium' })
case 'PPP':
return formatLong.date({ width: 'long' })
case 'PPPP':
default:
return formatLong.date({ width: 'full' })
}
}
function timeLongFormatter(pattern, formatLong) {
switch (pattern) {
case 'p':
return formatLong.time({ width: 'short' })
case 'pp':
return formatLong.time({ width: 'medium' })
case 'ppp':
return formatLong.time({ width: 'long' })
case 'pppp':
default:
return formatLong.time({ width: 'full' })
}
}
function dateTimeLongFormatter(pattern, formatLong) {
var matchResult = pattern.match(/(P+)(p+)?/)
var datePattern = matchResult[1]
var timePattern = matchResult[2]
if (!timePattern) {
return dateLongFormatter(pattern, formatLong)
}
var dateTimeFormat
switch (datePattern) {
case 'P':
dateTimeFormat = formatLong.dateTime({ width: 'short' })
break
case 'PP':
dateTimeFormat = formatLong.dateTime({ width: 'medium' })
break
case 'PPP':
dateTimeFormat = formatLong.dateTime({ width: 'long' })
break
case 'PPPP':
default:
dateTimeFormat = formatLong.dateTime({ width: 'full' })
break
}
return dateTimeFormat
.replace('{{date}}', dateLongFormatter(datePattern, formatLong))
.replace('{{time}}', timeLongFormatter(timePattern, formatLong))
}
var longFormatters = {
p: timeLongFormatter,
P: dateTimeLongFormatter
}
export default longFormatters
|