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/utcdayjs.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() // 2dayjs('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:00Za.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:00a.utc().format() // 2019-03-06T00:00:00Z
更多高级功能可参考对应的dayJs官方API
