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,你的电子学友。

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

相关推荐
Mr -老鬼1 小时前
RustSalvo框架上传文件接口(带参数)400错误解决方案
java·前端·python
前端 贾公子2 小时前
Vue3 组件库的设计和实现原理(上)
javascript·vue.js·ecmascript
zheshiyangyang2 小时前
前端面试基础知识整理【Day-9】
前端·面试·职场和发展
Coder_Boy_2 小时前
Java高级_资深_架构岗 核心知识点全解析(通俗透彻+理论+实践+最佳实践)
java·spring boot·分布式·面试·架构
笨蛋不要掉眼泪2 小时前
Sentinel 热点参数限流实战:精准控制秒杀接口的流量洪峰
java·前端·分布式·spring·sentinel
石去皿2 小时前
人工智能向量检索常见面试篇
面试·职场和发展
Rhystt2 小时前
furryCTF题解|Web方向|ezmd5、猫猫最后的复仇
android·前端·web安全·web
Hello.Reader2 小时前
Tauri 前端配置把任何前端框架“正确地”接进 Tauri(含 Vite/Next/Nuxt/Qwik/SvelteKit/Leptos/Trunk)
前端·前端框架
明月_清风2 小时前
浏览器时间管理大师:深度拆解 5 大核心调度 API
前端·javascript