Day.js 是一个轻量的处理时间和日期的JavaScript库
安装day.js
npm install dayjs --save
在项目代码中引入day.js
import dayjs from 'dayjs'
var dayjs = require('dayjs')
使用day.js
dayjs().format()
Day.js 没有对原生 Date.prototype 做任何修改
Day.js给Date对象做了一层封装,使用支持的数据格式调用 dayjs() 即可取到这个封装的对象
Day.js对象是不可变的,所有的 API 操作都将返回一个全新的实例
直接调用 dayjs() 将返回一个包含当前日期和时间的 Day.js 对象
var now = dayjs() //等同于dayjs(new Date())的调用
day.js可以解析传入的 ISO 8601 格式的字符串并返回一个 Day.js 对象实例
dayjs('2018-04-04T16:00:00.000Z')
使用原生 Javascript Date 对象创建一个 Day.js 对象
var d = new Date(2018, 8, 18)
var day = dayjs(d)
这将克隆Date对象,对传入的Date对象做进一步更改不会影响Day.js对象
所有的Day.js对象都是不可变的, 可以使用 dayjs#clone出一个当前对象
var a = dayjs()
var b = a.clone()
a 和 b 是两个独立的 Day.js 对象
在 dayjs() 里传入一个 Day.js 对象也会返回一个复制的对象
var a = dayjs()
var b = dayjs(a)
检测当前 Day.js 对象是否是一个有效的时间,返回 boolean
dayjs().isValid()
对 Day.js 对象进行操作,支持链式调用
dayjs('2019-01-25').add(1, 'day').subtract(1, 'year').year(2009).toString()
Add 返回增加一定时间的复制的 Day.js 对象
dayjs().add(7, 'day')
Subtract 返回减去一定时间的复制的 Day.js 对象
dayjs().subtract(7, 'year')
add和subtract支持的单位列表
单位 缩写 详情
day d 星期几 (星期天0,星期六6)
week w Week of Year
month M 月份 (一月 0, 十二月 11)
quarter Q 季度 ( 依赖 QuarterOfYear 插件 )
year y Year
hour h Hour
minute m Minute
second s Second
millisecond ms Millisecond
Start of Time返回复制的 Day.js 对象,设置一个时间的开始
dayjs().startOf('year')
End of Time返回复制的 Day.js 对象,设置一个时间的末尾
dayjs().endOf('month')
startOf和endOf支持的单位列表
单位 缩写 详情
year y 今年一月1日上午 00:00
quarter Q 本季度第一个月1日上午 00:00 ( 依赖 QuarterOfYear 插件 )
month M 本月1日上午 00:00
week w 本周的第一天上午 00:00
isoWeek 本周的第一天上午 00:00 (根据 ISO 8601) ( 依赖 IsoWeek 插件 )
date D 当天 00:00
day d 当天 00:00
hour h 当前时间,0 分、0 秒、0 毫秒
minute m 当前时间,0 秒、0 毫秒
second s 当前时间,0 毫秒
Format 格式化时间(根据传入的占位符返回格式化后的日期)
dayjs().format() // 默认返回的是 ISO8601 格式字符串 '2020-04-02T08:02:17-05:00'
dayjs('2019-01-25').format('YYYY-MM-DDTHH:mm:ssZ[Z]') // '2019-01-25T00:00:00-02:00Z'
dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'
Format 支持的格式化占位符列表
占位符 输出 详情
YY 18 两位数的年份
YYYY 2018 四位数的年份
M 1-12 月份,从 1 开始
MM 01-12 月份,两位数
MMM Jan-Dec 缩写的月份名称
MMMM January-December 完整的月份名称
D 1-31 月份里的一天
DD 01-31 月份里的一天,两位数
d 0-6 一周中的一天,星期天是 0
dd Su-Sa 最简写的星期几
ddd Sun-Sat 简写的星期几
dddd Sunday-Saturday 星期几
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 秒 两位数
SSS 000-999 毫秒 三位数
Z +05:00 UTC 的偏移量,±HH:mm
ZZ +0500 UTC 的偏移量,±HHmm
A AM PM
a am pm
详细资料点击:day.js 官方文档