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 |