Day.js的基本用法
post on 2024-06-06 09:25:08
前端
dayjs
时间处理
0181Day.js 设计为链式调用风格,每次调用dayjs的方法都会返回一个dayjs对象。
1. 解析时间
- 获取当前时间:dayjs()
- 解析 ISO 8601(opens new window)格式的字符串:dayjs(‘2018-04-04T16:00:00.000Z’)
- 解析毫秒级时间戳:dayjs(1318781876406)
- 解析秒级时间戳:dayjs.unix(1318781876),支持带小数点
- 时间校验(不严格,只检查该事件能否被dayjs解析,不判断是否是一个合法的时间):dayjs对象.isValid()
2. 取值和赋值(不穿值的情况下是取值,传值的情况下是赋值):
- 获取毫秒/设置毫秒:dayjs对象.millisecond(),接收0-999的数字,超出这个范围会进位到秒
- 获取秒/设置秒:dayjs对象.second(),接收0-59的数字,超出这个范围会进位到分钟
- 获取分钟/设置分钟:dayjs对象.minute(),接收0-59的数字,超出这个范围会进位到小时
- 获取小时/设置小时:dayjs对象.hour(),接收0-23的数字,超出这个范围会进位到天数
- 获取日期/设置日期:dayjs对象.date(),接收1-31的数字,超出这个范围会进位到月份
- 获取星期/设置星期:dayjs对象.day(),接收0-6的数字,超出这个范围会进位到周
- 获取月/设置月:dayjs对象.month(),接收0-11的数字,超出这个范围会进位到年份
- 获取年/设置年:dayjs对象.year(),接收数字
- 额外的获取方式:dayjs对象.get(),接受一个字符串:year | month | day | date …
- 额外的设置方式:dayjs对象.set(),接收两个参数,第一个接收字符串:year | month | day | date …,第二个接收设置的值,要求是number
3. 时间的改变(支持链式操作)
- 时间的增加:dayjs对象.add(),第一个参数是加多少,第二个参数是加到什么上:year | month | day | date …
- 时间的减少:dayjs对象.subtract(),第一个参数是减多少,第二个参数是减到什么上:year | month | day | date …
- 设置时间的开始:dayjs对象.startOf(),接收一个参数,用于判断设置到什么上的开始时间:year | month | day …
- 设置时间的结束:dayjs对象.endOf(),接收一个参数,用于判断设置到什么上的结束时间:year | month | day …
4. 时间的格式化:dayjs对象.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-59 | 秒 |
ss | 00-59 | 秒,两位数 |
S | 0-9 | 毫秒(十),一位数 |
SS | 00-99 | 毫秒(百),两位数 |
SSS | 000-999 | 毫秒,三位数 |
Z | -05:00 | UTC 的偏移量,±HH:mm |
ZZ | -0500 | UTC 的偏移量,±HHmm |
A | AM / PM | 上/下午,大写 |
a | am / pm | 上/下午,小写 |
Do | 1st… 31st | 月份的日期与序号 |
5. 时间的比较
- 判断时间是否在某个时间之前:dayjs对象.isBefore(dayjs对象)
- 判断时间是否在某个时间之后:dayjs对象.isAfter(dayjs对象)
- 判断时间是否和某个时间相同(毫秒级比较):dayjs对象.isSame(dayjs对象),可以传入第二个参数时间比较的级别:year | month | day …
评论支持MarkDown格式