dayJs 轻量库
Moment.js 的 2kB 轻量化方案,拥有同样强大的 API;运行在Nodejs及浏览器端
特点
大小: 2K,下载、解析和执行更少的 JavaScript,为您的代码留出更多时间。
简易: Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样。
如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js 。
不可变的: 所有的 API 操作都将返回一个新的 Dayjs 对象。这种设计能避免 bug 产生,节约调试时间。
国际化: Day.js 对国际化支持良好。但除非手动加载,多国语言默认是不会被打包到工程里的
用法
获取时间或者设置时间
- 获取当前时间: var now = dayjs() | dayjs(new Date())
- 日期格式化: dayjs(“12-25-1995”, “MM-DD-YYYY”)
| 输入 | 例子 | 详情 |
| —- | —- | —- |
|
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 | 带序数词的月份里的一天 |
- 时间戳(毫秒)转化时间: dayjs(1318781876406), 传入参数必须是数字
- 时间戳(秒)转化时间: dayjs.unix(1318781876) | dayjs(timestamp 1000); timestamp1000:秒转化成毫秒
- UTC
默认情况下,Day.js 会把时间解析成本地时间。
如果想使用 UTC 时间,您可以调用 dayjs.utc()
而不是 dayjs()
。
在 UTC 模式下,所有显示方法将会显示 UTC 时间而非本地时间。
使用本功能需先配置 UTC 插件,才能正常运行 https://day.js.org/docs/zh-CN/plugin/utc
dayjs.extend(utc)
// 默认是当地时间
dayjs().format() //2019-03-06T08:00:00+08:00
// UTC 时间
dayjs.utc().format() // 2019-03-06T00:00:00Z
- 验证是否是一个日期格式: dayjs().isValid()
- 获取或设置毫秒, 传入0到999的数字。 如果超出这个范围,它会进位到秒
dayjs().millisecond()
dayjs().millisecond(1)
- 获取或设置秒, 传入0到59的数字。 如果超出这个范围,它会进位到分钟。
dayjs().second()
dayjs().second(1)
- 获取或设置分钟, 传入0到59的数字。 如果超出这个范围,它会进位到小时。
dayjs().minute()
dayjs().minute(59)
- 获取或设置小时, 传入0到23的数字。 如果超出这个范围,它会进位到天数。
dayjs().hour()
dayjs().hour(12)
- 获取或设置月份里的日期, 接受1到31的数字。 如果超出这个范围,它会进位到月份。
dayjs().date()
dayjs().date(1)
- 获取或设置月份。
dayjs().month()
dayjs().month(0)
- 获取或设置季度
使用本功能需先配置 QuarterOfYear 插件,才能正常运行
dayjs.extend(quarterOfYear)
dayjs('2010-04-01').quarter() // 2
dayjs('2010-04-01').quarter(2)
- 获取或设置年份。
dayjs().year()
dayjs().year(2000)
对时间操作
- 给当前 Day.js 对象增加时间,并返回一个对应的新实例
dayjs().add(7, 'day')
各个传入的单位对大小写不敏感,支持缩写和复数。
单位 | 缩写 | 详情 |
---|---|---|
date |
D |
Date of Month |
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 |
- 给当前 Day.js 对象减少时间,并返回一个对应的新实例。各个传入的单位对大小写不敏感,支持缩写和复数。
dayjs().subtract(7, 'year')
支持单位如上Add操作
- 返回一个在当前时区模式下的 Day.js 对象。
使用本功能需先配置 UTC 插件,才能正常运行
dayjs.extend(utc)
var a = dayjs.utc()
a.format() // 2019-03-06T00:00:00Z
a.local().format() //2019-03-06T08:00:00+08:00
- 返回一个在 UTC 模式下的 Day.js 对象。
使用本功能需先配置 UTC 插件,才能正常运行
dayjs.extend(utc)
var a = dayjs()
a.format() //2019-03-06T08:00:00+08:00
a.utc().format() // 2019-03-06T00:00:00Z
更多高级功能可参考对应的dayJs官方API