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

Day.js是一个轻量级的JavaScript时间日期库,用于处理时间。本文介绍了如何安装和引入Day.js,以及它在处理当前时间、解析时间戳、增加或减少时间、获取开始和结束时间、计算时间差、Unix时间戳、获取月份天数、中文本地化和时间格式化等方面的功能。
摘要由CSDN通过智能技术生成


安装

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')

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

格式输出描述
YY19两位数年份
YYYY2019四位数年份
M1~12月份,从1开始
MM01~12月份,两位数
MMMJan~Dec简写的月份名称
MMMMJanuary-December完整的月份名称
D1~31月份里的一天
DD01~31月份里的一天,两位数
d0~6一周中的一天,星期天是0
ddSu~Sa最简写的一周中一天的名称
dddSun-Sat简写的一周中一天的名称
ddddSunday-Saturday一周中一天的名称
H0~23小时
HH00~23小时,两位数
h1~12小时,12小时制
hh01~12小时,12小时制,两位数
m0~59分钟
mm00~59分钟,两位数
s0~59
ss00~59秒,两位数
SSS000~999毫秒,三位数
Z+5:00UTC的偏移量
ZZ+500UTC 的偏移量,数字前面加上 0
AAM PM
aam pm

总结

Day.js中文网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值