Day.js API 不包含插件API的速查表

有没有同学不想查官网还想快速的找到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

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

格式符 含义 示例输出
YYYY 4位年份 2025
YY 2位年份 25
MM 2位月份(01-12) 02
M 月份(1-12) 2
DD 2位日期(01-31) 20
D 日期(1-31) 20
HH 24小时制小时(00-23) 14
hh 12小时制小时 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'

示例:

javascript 复制代码
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

示例:

javascript 复制代码
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() 检查日期是否合法

十、小白入门示例

javascript 复制代码
// 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,你的电子学友。

如果文章对你有帮助,别忘了点赞、收藏、加关注,你的认可是我持续输出的最大动力~

相关推荐
zz58810 小时前
面试官问"JS的类型"时,到底想听到什么?
javascript
gjwjuejin10 小时前
全埋点技术方案深度剖析:从事件代理到无痕采集的完整实现
javascript
十有八七10 小时前
AI 开发,本质是一场文档的生命周期管理
前端·人工智能
Lkstar10 小时前
Vue 3 Composition API 进阶:自定义 Hooks 与 provide/inject 的高级玩法
vue.js·面试
Hyyy10 小时前
普通前端自救记录——第0周
前端
前端若水11 小时前
在 Vue 2 与 Vue 3 中使用 markdown-it-vue 渲染 Markdown 和数学公式
前端·javascript·vue.js
之歆11 小时前
DAY_10 JavaScript 深度解析:原型链 · 引用类型 · 内置对象 · 数组方法全攻略(下)
开发语言·前端·javascript·ecmascript
行星飞行11 小时前
从 cursor 、 Claude code 迁移到 codex,30 分钟快速上手 codex 常用技巧
前端
__log11 小时前
ComfyUI 集成技术方案分析报告
javascript·python·django
Pu_Nine_912 小时前
前端埋点从入门到企业实践:手写一个Demo + 主流方案对比
前端·埋点