字符串 + 格式
如果知道输入字符串的格式,您可以用它来解析日期。
这依赖
CustomParseFormat
插件,才能正常运行
dayjs.extend(customParseFormat)
dayjs("12-25-1995", "MM-DD-YYYY")
如果想解析包含本地化语言的日期字符串,可以传入第三个参数。
require('dayjs/locale/zh-cn')
dayjs('2018 三月 15', 'YYYY MMMM DD', 'zh-cn')
最后一个参数可传入布尔值来启用严格解析模式。 严格解析要求格式和输入内容完全匹配,包括分隔符。
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 | 月份,两位数 |
MMM | Jan-Dec | 缩写的月份名称 |
MMMM | January-December | 完整的月份名称 |
D | 1-31 | 月份里的一天 |
DD | 01-31 | 月份里的一天,两位数 |
H | 0-23 | 小时 |
HH | 00-23 | 小时,两位数 |
h | 1-12 | 小时, 12 小时制 |
hh | 01-12 | 小时, 12 小时制, 两位数 |
m | 0-59 | 分钟 |
mm | 00-59 | 分钟,两位数 |
s | 0-59 | 秒 |
ss | 00-59 | 秒 两位数 |
S | 0-9 | 毫秒,一位数 |
SS | 00-99 | 毫秒,两位数 |
SSS | 000-999 | 毫秒,三位数 |
Z | -05:00 | UTC 的偏移量 |
ZZ | -0500 | UTC 的偏移量,两位数 |
A | AM PM | 上午 下午 大写 |
a | am pm | 上午 下午 小写 |
Do | 1st... 31st | 带序数词的月份里的一天 |
X | 1410715640.579 | Unix 时间戳 |
x | 1410715640579 | Unix 时间戳 |
和 Moment.js 的差异
title | parameters | 天 | moment |
---|---|---|---|
invalid date with overflow | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss') | '08-11-2011 04:29:17' | 'Invalid date' |
invalid date with overflow, strict | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss', true) | 'Invalid Date' | 'Invalid date' |
'0' day or month (using default values) | ('1970-00-00', 'YYYY-MM-DD') | '1970-01-01' | 'Invalid date' |
'0' day or month (using default values), strict | ('1970-00-00', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
date not matching format | ('10/12/2014', 'YYYY-MM-DD') | '01-01-2014' | '12-20-2010' |
date not matching format, strict | ('10/12/2014', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
first match vs. longest match | ('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' |
first match vs. longest match, strict | ('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' |
List of all recognized separator characters:
-_:.,()/