Day.js 核心 API 速查表(无插件版|基础必备)

0 阅读5分钟

同学们好,我是 Eugene(尤金),一个拥有多年中后台开发经验的前端工程师~

(Eugene 发音很简单,/juːˈdʒiːn/,大家怎么顺口怎么叫就好)

你是否也有过:明明学过很多技术,一到关键时候却讲不出来、甚至写不出来?

你是否也曾怀疑自己,是不是太笨了,明明感觉会,却总差一口气?

就算想沉下心从头梳理,可工作那么忙,回家还要陪伴家人。

一天只有24小时,时间永远不够用,常常感到力不从心。

技术行业,本就是逆水行舟,不进则退。

如果你也有同样的困扰,别慌。

从现在开始,跟着我一起心态归零,利用碎片时间,来一次彻彻底底的基础扫盲

这一次,我们一起慢慢来,扎扎实实变强。

不搞花里胡哨的理论堆砌,只分享看得懂、用得上的前端干货,

咱们一起稳步积累,真正摆脱“面向搜索引擎写代码”的尴尬。

有没有同学不想查官网还想快速的找到api是怎么用的?看这里,一文帮助你快速的找到Day.js的不包含插件的API。如果有没说明清楚的地方欢迎在评论区指正。 中文官网的链接:Day.js

一、创建和解析日期

API作用示例说明
dayjs()获取当前时间dayjs()返回当前日期时间
dayjs(字符串)解析日期字符串dayjs('2025-02-20')支持 YYYY-MM-DDYYYY-MM-DD HH:mm:ss
dayjs(数字)解析时间戳dayjs(1708416000000)毫秒级时间戳
dayjs(Date对象)从原生 Date 创建dayjs(new Date())包装原生 JS 的 Date
.isValid()判断是否合法日期dayjs('abc').isValid()返回 true / false

二、格式化输出(转成字符串)

格式符含义示例输出
YYYY4位年份2025
YY2位年份25
MM2位月份(01-12)02
M月份(1-12)2
DD2位日期(01-31)20
D日期(1-31)20
HH24小时制小时(00-23)14
hh12小时制小时02
mm分钟(00-59)30
ss秒(00-59)45
A上午/下午AM / PM

使用示例:

写法示例输出
.format('YYYY-MM-DD')2025-02-20
.format('YYYY-MM-DD HH:mm:ss')2025-02-20 14:30:45
.format('YYYY年MM月DD日')2025年02月20日
.format('MM/DD/YY')02/20/25

三、获取时间各部分

API作用返回值示例
.year()获取年份2025
.month()获取月份1(注意:0=1月,11=12月)
.date()获取日期(几号)20
.day()获取星期几4(0=周日,6=周六)
.hour()获取小时14
.minute()获取分钟30
.second()获取秒45
.millisecond()获取毫秒123
.unix()获取秒级时间戳1708416045
.valueOf()获取毫秒级时间戳1708416045123

四、设置时间(修改某一项)

API作用示例
.year(年份)设置年份dayjs().year(2026)
.month(月份)设置月份dayjs().month(5)(6月,0起算)
.date(日期)设置几号dayjs().date(15)
.hour(小时)设置小时dayjs().hour(12)
.minute(分钟)设置分钟dayjs().minute(0)
.second(秒)设置秒dayjs().second(0)

五、增减时间(加减几天、几月等)

API作用示例
.add(数量, 单位)加时间dayjs().add(3, 'day') 加 3 天
.subtract(数量, 单位)减时间dayjs().subtract(1, 'month') 减 1 个月

常用单位:

单位含义
'year' / 'y'
'month' / 'M'
'week' / 'w'
'day' / 'd'
'hour' / 'h'小时
'minute' / 'm'分钟
'second' / 's'

示例:

dayjs().add(7, 'day')      // 7天后
dayjs().subtract(1, 'year') // 1年前
dayjs().add(2, 'hour').add(30, 'minute')  // 可链式调用

六、获取时间段的开始/结束

API作用示例
.startOf(单位)取该单位起始时间dayjs().startOf('month') → 本月 1 号 00:00:00
.endOf(单位)取该单位结束时间dayjs().endOf('month') → 本月最后一天 23:59:59.999

常用单位: 'year' 'month' 'week' 'day' 'hour' 'minute'

七、日期比较

API作用返回值
.isBefore(其他日期)是否在某日期之前true / false
.isAfter(其他日期)是否在某日期之后true / false
.isSame(其他日期)是否相同true / false
.isSame(其他日期, 单位)是否在某一单位内相同.isSame(other, 'day') 是否同一天
.isBetween(开始, 结束)是否在区间内true / false

示例:

dayjs('2025-02-20').isBefore('2025-02-21')  // true
dayjs('2025-02-20').isAfter('2025-02-19')   // true
dayjs('2025-02-20 14:00').isSame(dayjs('2025-02-20 15:00'), 'day')  // true(同一天)

八、计算时间差

API作用示例
.diff(其他日期, 单位)计算时间差dayjs('2025-03-01').diff(dayjs('2025-02-20'), 'day') → 9

常用单位: 'year' 'month' 'week' 'day' 'hour' 'minute' 'second'

九、其他常用方法

API作用
.toDate()转成原生 JavaScript Date 对象
.clone()克隆一份,避免修改原对象
.isValid()检查日期是否合法

十、小白入门示例

// 1. 获取今天
const today = dayjs();

// 2. 格式化显示
today.format('YYYY年MM月DD日 HH:mm');  // "2025年02月20日 14:30"

// 3. 获取3天后的日期
const after3Days = dayjs().add(3, 'day');

// 4. 判断是否过期
const expired = dayjs('2025-01-01').isBefore(dayjs());

// 5. 获取本月第一天
const firstDay = dayjs().startOf('month');

提示: dayjs 是不可变的,每次操作都会返回新对象,不会修改原日期,可放心链式调用。


学习本就是一场持久战,不需要急着一口吃成胖子。哪怕今天你只记住了一点点,这都是实打实的进步。

后续我还会继续用这种大白话、讲实战方式,带大家扫盲更多前端基础。

关注我,不迷路,咱们把那些曾经模糊的知识点,一个个彻底搞清楚。

如果你觉得这篇内容对你有帮助,不妨点赞+收藏,下次写代码卡壳时,拿出来翻一翻,比搜引擎更靠谱。

我是 Eugene,你的电子学友,我们下一篇干货见~