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(数量, '单位'),单位可为year、month、day、hour、minute、second、millisecond等,如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)。
时区支持
通过引入 utc 和 timezone 插件,可设置默认时区并转换不同时区的时间,如 dayjs.tz.setDefault("Asia/Shanghai") 设置默认时区为上海,dayjs.tz().format("YYYY-MM-DD HH:mm:ss") 获取当前时间格式化。
优势
-
轻量级 :体积小巧,性能高,对性能要求较高的项目友好。
-
易于使用 :API 简单易懂,使用方便,学习成本低。
-
Moment.js 兼容性 :语法和 Moment.js 类似,熟悉 Moment.js 的开发者能快速上手。
-
功能丰富 :涵盖日期格式化、加减操作、时间比较、时间差计算等常用功能。
-
插件扩展性强 :可通过插件扩展功能,满足更多需求。
-
多语言支持 :支持多种语言,可方便地进行本地化处理。

346

被折叠的 条评论
为什么被折叠?



