字符串 + 格式
如果你知道輸入字符串的格式,就可以使用該格式來解析日期。
TIP
這需要 CustomParseFormat 插件才能正常工作。
js
dayjs.extend(customParseFormat);
dayjs('12-25-1995', 'MM-DD-YYYY');
將地區設定鍵作為第三個參數傳遞,就可以解析支援特定地區設定的日期時間字符串。
js
require('dayjs/locale/es');
dayjs('2018 Enero 15', 'YYYY MMMM DD', 'es');
你可以為最後一個參數指定布爾值來啟用嚴格解析。 嚴格解析要求輸入字符串與指定的格式完全匹配,包括分隔符。
js
dayjs('1970-00-00', 'YYYY-MM-DD').isValid(); // true
dayjs('1970-00-00', 'YYYY-MM-DD', true).isValid(); // false
dayjs('1970-00-00', 'YYYY-MM-DD', 'es', true).isValid(); // false
如果你不確定輸入字符串的確切格式,但知道它可能是多種格式之一,就可以使用格式數組。 Day.js 會嘗試使用數組中的每種格式解析日期,直到成功為止。
js
dayjs('12-25-2001', ['YYYY', 'YYYY-MM-DD'], 'es', true);
所有可用的解析標記列表
Input | Example | Description |
---|---|---|
YY | 01 | 兩位數年份 |
YYYY | 2001 | 四位數年份 |
M | 1-12 | 月份,從 1 開始 |
MM | 01-12 | 月份,2 位數 |
MMM | Jan-Dec | 月份名稱縮寫 |
MMMM | January-December | 月份名稱全稱 |
D | 1-31 | 日期 |
DD | 01-31 | 日期,2 位數 |
H | 0-23 | 小時 (24 小時制) |
HH | 00-23 | 小時 (24 小時制),2 位數 |
h | 1-12 | 小時 (12 小時制) |
hh | 01-12 | 小時 (12 小時制),2 位數 |
m | 0-59 | 分鐘 |
mm | 00-59 | 分鐘,2 位數 |
s | 0-59 | 秒 |
ss | 00-59 | 秒,2 位數 |
S | 0-9 | 毫秒(百位),1 位數 |
SS | 00-99 | 毫秒(十位),2 位數 |
SSS | 000-999 | 毫秒,3 位數 |
Z | -05:00 | UTC 偏移 |
ZZ | -0500 | 緊湊格式的 UTC 偏移,2 位數 |
A | AM PM | 上午或下午(大寫) |
a | am pm | 上午或下午(小寫) |
Do | 1st... 31st | 帶順序的日期 |
X | 1410715640.579 | Unix 時間戳記 (秒) |
x | 1410715640579 | Unix 毫秒時間戳記 |
與 Moment.js 的差異
title | parameters | dayjs | moment |
---|---|---|---|
溢位無效日期 | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss') | '08-11-2011 04:29:17' | 'Invalid date' |
溢位無效日期(嚴格模式) | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss', true) | 'Invalid Date' | 'Invalid date' |
日或月為 '0'(使用預設值) | ('1970-00-00', 'YYYY-MM-DD') | '1970-01-01' | 'Invalid date' |
日或月為 '0'(使用預設值,嚴格模式) | ('1970-00-00', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
日期格式不匹配 | ('10/12/2014', 'YYYY-MM-DD') | '01-01-2014' | '12-20-2010' |
日期格式不匹配(嚴格模式) | ('10/12/2014', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
首次匹配與最長匹配 | ('2012-05-28 10:21:15', ['YYYY', 'YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss']) | '2012-01-01 00:00:00' | '2012-05-28 10:21:15' |
首次匹配與最長匹配(嚴格模式) | ('2012-05-28 10:21:15', ['YYYY', 'YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss'], true) | '2012-05-28 10:21:15' | '2012-05-28 10:21:15' |
所有支援的分隔符字符列表:
-_:.,()/