Day.js的基本用法

post on 2024-06-06 09:25:08
前端
dayjs
时间处理
0181

Day.js 设计为链式调用风格,每次调用dayjs的方法都会返回一个dayjs对象。

1. 解析时间

  1. 获取当前时间:dayjs()
  2. 解析 ISO 8601(opens new window)格式的字符串:dayjs(‘2018-04-04T16:00:00.000Z’)
  3. 解析毫秒级时间戳:dayjs(1318781876406)
  4. 解析秒级时间戳:dayjs.unix(1318781876),支持带小数点
  5. 时间校验(不严格,只检查该事件能否被dayjs解析,不判断是否是一个合法的时间):dayjs对象.isValid()

2. 取值和赋值(不穿值的情况下是取值,传值的情况下是赋值):

  1. 获取毫秒/设置毫秒:dayjs对象.millisecond(),接收0-999的数字,超出这个范围会进位到秒
  2. 获取秒/设置秒:dayjs对象.second(),接收0-59的数字,超出这个范围会进位到分钟
  3. 获取分钟/设置分钟:dayjs对象.minute(),接收0-59的数字,超出这个范围会进位到小时
  4. 获取小时/设置小时:dayjs对象.hour(),接收0-23的数字,超出这个范围会进位到天数
  5. 获取日期/设置日期:dayjs对象.date(),接收1-31的数字,超出这个范围会进位到月份
  6. 获取星期/设置星期:dayjs对象.day(),接收0-6的数字,超出这个范围会进位到周
  7. 获取月/设置月:dayjs对象.month(),接收0-11的数字,超出这个范围会进位到年份
  8. 获取年/设置年:dayjs对象.year(),接收数字
  9. 额外的获取方式:dayjs对象.get(),接受一个字符串:year | month | day | date …
  10. 额外的设置方式:dayjs对象.set(),接收两个参数,第一个接收字符串:year | month | day | date …,第二个接收设置的值,要求是number

3. 时间的改变(支持链式操作)

  1. 时间的增加:dayjs对象.add(),第一个参数是加多少,第二个参数是加到什么上:year | month | day | date …
  2. 时间的减少:dayjs对象.subtract(),第一个参数是减多少,第二个参数是减到什么上:year | month | day | date …
  3. 设置时间的开始:dayjs对象.startOf(),接收一个参数,用于判断设置到什么上的开始时间:year | month | day …
  4. 设置时间的结束: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. 时间的比较

  1. 判断时间是否在某个时间之前:dayjs对象.isBefore(dayjs对象)
  2. 判断时间是否在某个时间之后:dayjs对象.isAfter(dayjs对象)
  3. 判断时间是否和某个时间相同(毫秒级比较):dayjs对象.isSame(dayjs对象),可以传入第二个参数时间比较的级别:year | month | day …
说点什么...
评论支持MarkDown格式

 / 1