Skip to content

#tech/dayjs

官网

https://dayjs.fenxianglu.cn/category/#node-js

浏览器版本

js
<script src="https://cdn.jsdelivr.net/npm/dayjs/dayjs.min.js"></script>
<script>
  dayjs().format()
</script>

国内

js
<script src="https://cdn.jsdelivr.net/npm/dayjs/dayjs.min.js"></script>
<script>dayjs().format()</script>

举例

js
dayjs('2019-01-25').add(1, 'day').subtract(1, 'year').year(2009).toString()

单位值

dayd
weekw
monthM月份(0-11)
quarterQ季度,依赖 QuarterOfYear 插件
yeary
hourh小时
minutem分钟
seconds
millisecondms毫秒

运算

js
dayjs().subtract(7, 'year')

dayjs().startOf('year')

dayjs().endOf('month')

dayjs.extend(utc)

var a = dayjs.utc()
a.format() // 2019-03-06T00:00:00Z
a.local().format() //2019-03-06T08:00:00+08:00

// 以下两种写法是等效的
dayjs().utcOffset(8)  // 设置小时偏移量
dayjs().utcOffset(480)  // 设置分钟偏移量 (8 * 60)

格式化

js
dayjs().format() 
// 默认返回的是 ISO8601 格式字符串 '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'

dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z'
标识示例描述
YY18年,两位数
YYYY2018年,四位数
M1-12月,从1开始
MM01-12月,两位数
MMMJan-Dec月,英文缩写
MMMMJanuary-December月,英文全称
D1-31
DD01-31日,两位数
d0-6一周中的一天,星期天是 0
ddSu-Sa最简写的星期几
dddSun-Sat简写的星期几
ddddSunday-Saturday星期几,英文全称
H0-23小时
HH00-23小时,两位数
h1-12小时, 12 小时制
hh01-12小时, 12 小时制, 两位数
m0-59分钟
mm00-59分钟,两位数
s0-59
ss00-59秒,两位数
S0-9毫秒(十),一位数
SS00-99毫秒(百),两位数
SSS000-999毫秒,三位数
Z-05:00UTC 的偏移量,±HH:mm
ZZ-0500UTC 的偏移量,±HHmm
AAM / PM上/下午,大写
aam / pm上/下午,小写
Do1st... 31st月份的日期与序号

差异

js
const date1 = dayjs('2019-01-25')
const date2 = dayjs('2018-06-05')
date1.diff(date2) // 20214000000 默认单位是毫秒

const date1 = dayjs('2019-01-25')
date1.diff('2018-06-05', 'month') // 7

const date1 = dayjs('2019-01-25')
date1.diff('2018-06-05', 'month', true) // 7.645161290322581
单位缩写描述
weekw周(Week of Year)
dayd
monthM月份 (一月 0, 十二月 11)
quarterQ季度,依赖 QuarterOfYear 插件
yeary
hourh小时
minutem分钟
seconds
millisecondms毫秒

时间戳

返回当前实例的 UNIX 时间戳,13位数字,毫秒

js
dayjs('2019-01-25').valueOf() // 1548381600000
+dayjs(1548381600000) // 1548381600000

返回当前实例的 UNIX 时间戳,10位数字,秒。

js
dayjs('2019-01-25').unix() // 1548381600

获取月天数

获取当前月份包含的天数。

js
dayjs('2019-01-25').daysInMonth() // 31

转Date

调用 dayjs#toDate 从 Day.js 对象中获取原生的 Date 对象

js
dayjs('2019-01-25').toDate()

解析

直接调用 dayjs() 将返回一个包含当前日期和时间的 Day.js 对象。

js
var now = dayjs()

dayjs('2018-04-04T16:00:00.000Z')

dayjs("12-25-1995", "MM-DD-YYYY")

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
YY18两位数的年份
YYYY2018四位数的年份
M1-12月份,从 1 开始
MM01-12月份,两位数
MMMJan-Dec缩写的月份名称
MMMMJanuary-December完整的月份名称
D1-31月份里的一天
DD01-31月份里的一天,两位数
H0-23小时
HH00-23小时,两位数
h1-12小时, 12 小时制
hh01-12小时, 12 小时制, 两位数
m0-59分钟
mm00-59分钟,两位数
s0-59
ss00-59秒,两位数
S0-9毫秒,一位数
SS00-99毫秒,两位数
SSS000-999毫秒,三位数
Z-05:00UTC 的偏移量
ZZ-0500UTC 的偏移量,两位数
AAM / PM上午 下午 大写
aam / pm上午 下午 小写
Do1st... 31st带序数词的月份里的一天
X1410715640.579Unix 时间戳
x1410715640579Unix 时间戳