解析和操作完成后,您需要一些方法来显示Day.js对象
# 格式化
根据传入的令牌字符串获取格式化的日期。
要对字符进行转义,请将它们括在方括号中(例如[MM])。
dayjs().format()
// current date in ISO8601, without fraction seconds e.g. '2020-04-02T08:02:17-05:00'
dayjs('2019-01-25').format('[YYYYescape] YYYY-MM-DDTHH:mm:ssZ[Z]')
// 'YYYYescape 2019-01-25T00:00:00-02:00Z'
dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'
所有可用解析标记的列表
标识 | 示例 | 描述 |
---|---|---|
YY | 18 | 年,两位数 |
YYYY | 2018 | 年,四位数 |
M | 1-12 | 月,从1开始 |
MM | 01-12 | 月,两位数字 |
MMM | Jan-Dec | 月,英文缩写 |
D | 1-31 | 日 |
DD | 01-31 | 日,两位数 |
H | 0-23 | 24小时 |
HH | 00-23 | 24小时,两位数 |
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 | 月份的日期与序号 |
更多可用格式Q Do k kk X X…需要使用插件AdvancedFormat
# 本地化格式
由于首选格式根据语言环境的不同而不同,因此可以根据其语言环境使用一些本地化格式标记。
注意
此功能依赖LocalizedFormat插件 ::
dayjs.extend(LocalizedFormat)
dayjs().format('L LT')
本地化格式列表
格式 | 英美 | 输出结果 |
---|---|---|
LT h:mm A | 8:02 PM | |
LTS h:mm:ss A | 8:02:18 PM | |
L MM/DD/YYYY | 08/16/2018 | |
LL MMMM D, YYYY | August 16, 2018 | |
LLL MMMM D, YYYY h:mm A | August 16, 2018 8:02 PM | |
LLLL dddd, MMMM D, YYYY h:mm A | Thursday, August 16, 2018 8:02 PM | |
l M/D/YYYY | 8/16/2018 | |
ll MMM D, YYYY | Aug 16, 2018 | |
lll MMM D, YYYY h:mm A | Aug 16, 2018 8:02 PM | |
llll ddd, MMM D, YYYY h:mm A | Thu, Aug 16, 2018 8:02 PM |
# 当前时间以前
从现在开始返回相对时间的字符串。
注意
此功能依赖RelativeTime插件
dayjs.extend(relativeTime)
dayjs().fromNow() // 2 years ago
如果传递true,则可以获得不带后缀的值。
dayjs.extend(relativeTime)
dayjs().fromNow() // 2 years ago
dayjs().fromNow(true) // 2 years
# 范围列表
基字符串由当前语言环境本地化can be customized。时间四舍五入到最接近的秒。
范围 | 键 | 输出结果 |
---|---|---|
0 to 44 seconds | s | 几秒钟前 |
45 to 89 seconds | m | 一分钟前 |
90 seconds to 44 minutes | mm | 2分钟前…44分钟前 |
45 to 89 minutes | h | 一个小时前 |
90 minutes to 21 hours | hh | 2小时前…21小时前 |
22 to 35 hours | d | 一天前 |
36 hours to 25 days | dd | 两天前…25天前 |
26 to 45 days | M | 一个月前 |
46 days to 10 months | MM | 两个月前…10个月前 |
11 months to 17months | y | 一年前 |
18 months+ | yy | 两年前…20年前 |
# 指定时间以前
返回指定时间的相对时间字符串。
::: warning注意 此功能依赖RelativeTime插件 :::
dayjs.extend(relativeTime)
var a = dayjs()
var b = dayjs('1990-01-01')
a.from(b) // 2 years ago
如果传递true,则可以获得不带后缀的值。
dayjs.extend(relativeTime)
var a = dayjs()
a.from('1990-01-01') // 2 years ago
a.from('1990-01-01', true) // 2 years
# 时间到当前
返回到现在的相对时间字符串。
::: warning注意 此功能依赖RelativeTime插件 :::
dayjs.extend(relativeTime)
dayjs().toNow() // in 2 years
如果传递true,则可以获得不带后缀的值。
dayjs.extend(relativeTime)
dayjs().toNow() // in 2 years
dayjs().toNow(true) // 2 years
# 到指定时间
返回指定时间的相对时间字符串。 ::: warning注意
此功能依赖RelativeTime插件 :::
dayjs.extend(relativeTime)
var a = dayjs()
var b = dayjs('1990-01-01')
a.to(b) // in 2 years
如果传递true,则可以获得不带后缀的值。
dayjs.extend(relativeTime)
var a = dayjs()
a.to('1990-01-01') // in 2 years
a.to('1990-01-01', true) // 2 years
# 日历时间
日历时间显示相对于给定引用时间(默认为现在)的时间,但与dayjs#fromNow略有不同。
注意
此功能依赖Calendar插件
dayjs.extend(Calendar)
dayjs().calendar()
dayjs().calendar(dayjs('2008-01-01'))
键 值 Last week (lastWeek) 上周一凌晨2:30 The day before (lastDay) 昨天凌晨两点半 The same day (sameDay) 今天凌晨2:30 The next day (nextDay) 明天凌晨两点半 The next week (nextWeek) 周日凌晨2:30 Everything else (sameElse) 其他(同理) 这些字符串是本地化的,可以自定义。
您还可以将指定日历输出格式作为第二个参数传递。
要对字符进行转义,请将它们括在方括号中(例如[Today])。
dayjs().calendar(null, {
sameDay: '[Today at] h:mm A', // The same day ( Today at 2:30 AM )
nextDay: '[Tomorrow]', // The next day ( Tomorrow at 2:30 AM )
nextWeek: 'dddd', // The next week ( Sunday at 2:30 AM )
lastDay: '[Yesterday]', // The day before ( Yesterday at 2:30 AM )
lastWeek: '[Last] dddd', // Last week ( Last Monday at 2:30 AM )
sameElse: 'DD/MM/YYYY' // Everything else ( 7/10/2011 )
})
# 差异
这表示指定单元中两个日期时间之间的差异。
要以毫秒为单位获得差异,请使用dayjs#diff。
const date1 = dayjs('2019-01-25')
const date2 = dayjs('2018-06-05')
date1.diff(date2) // 20214000000 default milliseconds
要获得另一度量单位中的差异,将该度量作为第二个参数传递。
const date1 = dayjs('2019-01-25')
date1.diff('2018-06-05', 'month') // 7
单位不区分大小写,支持复数和缩写形式。
单位 | 缩写 | 描述 |
---|---|---|
week | w | 周 |
day | d | 星期(星期日0,星期六6) |
month | M | 月份(0-11) |
quarter | Q 依赖QuarterOfYear插件 | |
year | y | 年 |
hour | h | 小时 |
minute | m | 分钟 |
second | s | 秒 |
millisecond ms 毫秒 |
默认情况下,dayjs#diff会将结果截断为小数点后零,返回一个整数。如果你想要一个浮点数,传递true作为第三个参数。
const date1 = dayjs('2019-01-25')
date1.diff('2018-06-05', 'month', true) // 7.645161290322581
# Unix时间戳(毫秒)
这将返回Day.js对象在Unix纪元以来的毫秒数。
dayjs('2019-01-25').valueOf() // 1548381600000
+dayjs(1548381600000) // 1548381600000
要从Day.js对象获取Unix时间戳(从epoch开始的秒数),您应该使用Unix时间戳。
# Unix时间戳
这将返回Day.js对象的Unix时间戳(自Unix纪元以来的秒数)。
dayjs('2019-01-25').unix() // 1548381600
此值按最接近的秒排列,不包含毫秒组件。
# 获取月天数
获取当前月份的天数。
dayjs('2019-01-25').daysInMonth() // 31
# 转Date
要获得从Day.js对象解析的本地日期对象的副本,请使用dayjs#toDate。
dayjs('2019-01-25').toDate()
# 转数组
注意
此功能依赖ToArray插件
dayjs.extend(toArray)
dayjs('2019-01-25').toArray() // [ 2019, 0, 25, 0, 0, 0, 0 ]
# 转JSON
序列化为ISO 8601字符串。
dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z'
# 转IOS 8601字符串
格式化为ISO 8601字符串。
dayjs('2019-01-25').toISOString() // '2019-01-25T02:00:00.000Z'
# 转对象
返回具有日期属性的对象。
注意
此功能依赖ToObject插件
dayjs.extend(toObject)
dayjs('2019-01-25').toObject()
/* { years: 2019,
months: 0,
date: 25,
hours: 0,
minutes: 0,
seconds: 0,
milliseconds: 0 } */
# 转字符串
返回日期的字符串表示形式。
dayjs('2019-01-25').toString() // 'Fri, 25 Jan 2019 02:00:00 GMT'