官网:day.js.org/docs/en/ins…
Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。
安装
要在您的 Node.js 项目中使用 Day.js,只需使用npm安装
npm install dayjs
引入
import dayjs from 'dayjs'
使用
当前时间
直接调用 dayjs() 将返回一个包含当前日期和时间的 Day.js 对象。
let now = dayjs()
等同于 dayjs(new Date()) 的调用。
当没有传入参数时,参数默认值是 undefined,所以调用 dayjs(undefined) 就相当于调用
格式化日期
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'
支持的解析占位符列表:
| 输入 | 示例 | 描述 |
|---|---|---|
| YY | 18 | 两位数的年份 |
| YYYY | 2018 | 四位数的年份 |
| 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 时间戳 |
时间差
这表示指定单位中两个日期时间之间的差异。
要获得以毫秒为单位的差异,请使用 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
默认情况下,dayjs#diff 会将结果截断为零位小数,返回一个整数。如果你想要浮点数,请传递 true 作为第三个参数。
const date1 = dayjs('2019-01-25')
date1.diff('2018-06-05', 'month', true) // 7.645161290322581
所有可用单位的列表
单位不区分大小写,并支持复数和缩写形式。请注意,缩写形式区分大小写。
| 单位 | 速记 | 描述 |
|---|---|---|
day | d | 天 |
week | w | 周 |
quarter | Q | 季度 |
month | M | 月份(1 月为 0,12 月为 11) |
year | y | 年份 |
hour | h | 小时 |
minute | m | 分钟 |
second | s | 秒 |
millisecond | ms | 毫秒 |
还有更多可以去官方中文文档dayjs.fenxianglu.cn/category/pa… 研究,按需使用就行