Day.js 是一个轻量级的 JavaScript 日期处理库

Day.js 是一个轻量级的 JavaScript 日期处理库,主要用于解析、验证、操作和显示日期和时间。以下是 Day.js 处理时间的一些主要方式和特点:

基础使用

  • 引入 :可通过 npm 安装,npm install dayjs ,然后在项目中使用 import dayjs from 'dayjs' 引入。

  • 创建时间对象dayjs() 可接收多种格式的输入,如不传参数默认为当前时间,也可接收具体日期字符串、时间戳、Date 对象等,如 dayjs('2025-05-24')dayjs(1742959830584) 等。

时间格式化

  • format 方法 :使用 format() 方法可按指定格式将日期时间转换为字符串。格式化字符有多种,如 YYYY 表示 4 位年份,MM 表示 2 位月份,DD 表示 2 位日期,HH 表示 2 位小时(24 小时制),mm 表示 2 位分钟,ss 表示 2 位秒数等。例如,dayjs().format('YYYY-MM-DD HH:mm:ss') 表示格式化为年月日时分秒的形式。

时间加减操作

  • add 方法 :用于增加时间,格式为 dayjs().add(数量, '单位'),单位可为 yearmonthdayhourminutesecondmillisecond 等,如 dayjs().add(7, 'day') 表示在当前日期基础上加 7 天。

  • subtract 方法 :用于减少时间,用法与 add 类似,如 dayjs().subtract(3, 'month') 表示在当前日期基础上减 3 个月。

获取时间的开始和结束

  • startOf 方法 :可获取某个时间单位的起始时间,如 dayjs().startOf('day') 获取当天的开始时间,即 00:00:00。

  • endOf 方法 :可获取某个时间单位的结束时间,如 dayjs().endOf('hour') 获取当前小时的结束时间,即 59 分 59 秒。

时间比较

  • isSame 方法 :比较两个时间是否相同,可指定比较到哪个时间单位,如 dayjs().isSame('2025-05-24', 'day') 表示比较日期是否相同。

  • isBefore 方法 :判断一个时间是否在另一个时间之前,如 dayjs('2025-05-20').isBefore('2025-05-24') 返回 true

  • isAfter 方法 :判断一个时间是否在另一个时间之后,如 dayjs('2025-05-24').isAfter('2025-05-20') 返回 true

时间差计算

使用 diff 方法可计算两个时间之间的差异,可指定单位,如 dayjs('2025-05-24').diff('2025-05-20', 'day') 计算两个日期相差的天数。

插件扩展

Day.js 支持插件扩展功能,如 utc 插件用于处理 UTC 时间,timezone 插件用于处理时区转换等。使用插件时需先引入并扩展,如 import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; dayjs.extend(utc)

时区支持

通过引入 utctimezone 插件,可设置默认时区并转换不同时区的时间,如 dayjs.tz.setDefault("Asia/Shanghai") 设置默认时区为上海,dayjs.tz().format("YYYY-MM-DD HH:mm:ss") 获取当前时间格式化。

优势

  • 轻量级 :体积小巧,性能高,对性能要求较高的项目友好。

  • 易于使用 :API 简单易懂,使用方便,学习成本低。

  • Moment.js 兼容性 :语法和 Moment.js 类似,熟悉 Moment.js 的开发者能快速上手。

  • 功能丰富 :涵盖日期格式化、加减操作、时间比较、时间差计算等常用功能。

  • 插件扩展性强 :可通过插件扩展功能,满足更多需求。

  • 多语言支持 :支持多种语言,可方便地进行本地化处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值