一个非常好用的轻量的处理时间和日期库 - Day.js


安装

npm install dayjs --save 

引入

import dayjs from 'dayjs'

使用

1. 当前时间

获取当前时间:

dayjs()

使用 format 将当前时间转化为时间格式输出:

dayjs().format('YYYY-MM-DD HH:mm:ss')

2. 解析时间戳

dayjs可以接收一个时间戳(毫秒)参数,并将其转换为时间格式:

dayjs(1601121636123).format('YYYY-MM-DD HH:mm:ss')

3. 增加

day.js也可以轻松获取 N时间 后的时间。

获取7天后的时间:

dayjs().add(7, 'day');

获取1小时后的时间:

dayjs().add(1, 'hour');

代码中用来表示的 时间参数,可以换成其他表示不同的时间单位:year(年),month(月),day(日),hour(时),minute(分),second(秒),millisecond(毫秒),week(周)

4. 减去

day.js也可以轻松获取 N时间 前的时间。

获取1月前的时间:

dayjs().subtract(1, 'month');

同上,代码中用来表示的 时间参数,也可以换成其他表示不同的时间单位:year(年),month(月),day(日),hour(时),minute(分),second(秒),millisecond(毫秒),week(周)

5. 开始时间

day.js可以获取一月,一周 或 某一个日期 的开始时间。

获取本周第一天(星期一)的开始时间:

dayjs().startOf('week').format('YYYY-MM-DD HH:mm:ss')   // 2023-06-18 00:00:00

获取 今天 的开始时间:

dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss');   // 2023-06-20 00:00:00

6. 末尾时间

day.js可以获取一月,一周 或 某一个日期 的结束时间。

获取 今天 的结束时间:

dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss');   // 2023-06-20 23:59:59

7. 两个时间差

day.js可以获取两个不同时间的差。
获取 今天 和 昨天 相差的小时数:

let date1 = dayjs();
let date2 = dayjs().add(1,'day');
date2.diff(date1, 'hour');  // 24

8. Unix 时间戳

day.js可以转换 秒级毫秒级 时间戳:

dayjs().unix(); //秒
dayjs().valueOf(); //毫秒

9. 获取月份天数

dayjs可以接收一个时间戳(毫秒)参数,并将其转换为时间格式:

dayjs().daysInMonth()  //30,(2023年6月共30天)
dayjs().add(1,'month').daysInMonth()  //31,(2023年7月共31天)

10. 距离当前时刻

  • fromNow() 表示距离当前时刻;
  • toNow() 表示相对当前时刻。

使用 fromNow() 和 toNow() 之前,需要使用插件 RelativeTime

// 1.先引入插件:
import relativeTime from 'dayjs/plugin/relativeTime';
dayjs.extend(relativeTime);

// 2.再执行调用方法:
let yesterday = dayjs().subtract(1,'day')
dayjs(yesterday).fromNow();   // a day ago
dayjs(yesterday).toNow();   // in a day

11. 中文本地化

如果想要上面输出 1天前 这样的 中文内容,需要引入中文语言包:

import 'dayjs/locale/zh-cn';
dayjs.locale('zh-cn');

let yesterday = dayjs().subtract(1,'day')
dayjs(yesterday).fromNow();   // a day ago ==> 1天前
dayjs(yesterday).toNow();   // in a day ==> 1天内

12. 格式化时间

使用 day.js 的 format() 可以格式化需要的时间格式。

dayjs().format('YYYY-MM-DD HH:mm:ss')

以下表格是从官网摘录的支持时间格式单位:

格式 输出 描述
YY 19 两位数年份
YYYY 2019 四位数年份
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 秒,两位数
SSS 000~999 毫秒,三位数
Z +5:00 UTC的偏移量
ZZ +500 UTC 的偏移量,数字前面加上 0
A AM PM
a am pm

总结

Day.js中文网

猜你喜欢

转载自blog.csdn.net/qq_38374286/article/details/131303113