字串 + 格式
如果您知道輸入字串的格式,可以使用它來分析日期。
這需要 CustomParseFormat
外掛程式才能運作
dayjs.extend(customParseFormat)
dayjs("12-25-1995", "MM-DD-YYYY")
傳遞地區金鑰作為第三個參數來分析與地區相關的日期時間字串。
require('dayjs/locale/es')
dayjs('2018 Enero 15', 'YYYY MMMM DD', 'es')
您可以指定最後一個參數的布林值來使用嚴格分析。嚴格分析要求格式和輸入完全相符,包括分隔符號。
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
如果您不知道輸入字串的確切格式,但知道可能是許多格式之一,您可以使用格式陣列。
dayjs("12-25-2001", ["YYYY", "YYYY-MM-DD"], 'es', true);
所有可用的分析代碼列表
輸入 | 範例 | 說明 |
---|---|---|
YY | 01 | 兩位數年份 |
YYYY | 2001 | 四位數年份 |
M | 1-12 | 月份,從 1 開始 |
MM | 01-12 | 月份,2 位數 |
MMM | 一月到十二月 | 月份的縮寫 |
MMMM | 一月到十二月 | 月份的完整名稱 |
D | 1-31 | 月份中的天數 |
DD | 01-31 | 月份中的天數,2 位數 |
H | 0-23 | 小時 |
HH | 00-23 | 小時,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 | 1 日... 31 日 | 帶序數詞的月份日期 |
X | 1410715640.579 | Unix 時間戳 |
x | 1410715640579 | Unix 毫秒時間戳 |
與 moment 的差異
標題 | 參數 | dayjs | moment |
---|---|---|---|
溢位無效日期 | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss') | '08-11-2011 04:29:17' | '無效日期' |
溢位無效日期,嚴格 | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss', true) | '無效日期' | '無效日期' |
'0' 日或月(使用預設值) | ('1970-00-00', 'YYYY-MM-DD') | '1970-01-01' | '無效日期' |
'0' 日或月(使用預設值),嚴格 | ('1970-00-00', 'YYYY-MM-DD', true) | '無效日期' | '無效日期' |
日期與格式不符 | ('10/12/2014', 'YYYY-MM-DD') | '01-01-2014' | '12-20-2010' |
日期與格式不符,嚴格 | ('10/12/2014', 'YYYY-MM-DD', true) | '無效日期' | '無效日期' |
首個匹配與最長匹配 | ('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' |
所有已識別分隔字元的清單
-_:.,()/