Day.js 入门

4,190 阅读3分钟

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()
ab 是两个独立的 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-59ss	   00-59	        秒 两位数
SSS	   000-999	        毫秒 三位数
Z	   +05:00	        UTC 的偏移量,±HH:mm
ZZ	   +0500	        UTC 的偏移量,±HHmm
A	   AM PM	
a	   am pm	

详细资料点击:day.js 官方文档