点击格式符即可插入到格式字符串中。示例使用上方的参考日期和语言区域。
| 格式符 | 示例 | 含义 | Day.js |
|---|---|---|---|
| 年与季度 | |||
| 四位年份 | 内置 | ||
| 两位年份 | 内置 | ||
| 季度(1–4) | advancedFormat | ||
| Day.js 不支持 | 季度(序数) | Day.js 不支持 | |
| 月 | |||
| 月(1–12) | 内置 | ||
| Day.js 不支持 | 月(序数) | Day.js 不支持 | |
| 月(两位) | 内置 | ||
| 月份简称 | 内置 | ||
| 月份全称 | 内置 | ||
| 日(月内 / 年内) | |||
| 日 | 内置 | ||
| 日(序数) | advancedFormat | ||
| 日(两位) | 内置 | ||
| Day.js 不支持 | 一年中的第几天 | Day.js 不支持 | |
| Day.js 不支持 | 一年中的第几天(三位) | Day.js 不支持 | |
| 星期 | |||
| 星期几(0 为周日) | 内置 | ||
| 星期(最短) | 内置 | ||
| 星期(简称) | 内置 | ||
| 星期(全称) | 内置 | ||
| Day.js 不支持 | 星期几(按语言区域) | Day.js 不支持 | |
| Day.js 不支持 | ISO 星期几(1 为周一) | Day.js 不支持 | |
| 周 | |||
| 一年中的第几周(按语言区域) | advancedFormat + weekOfYear | ||
| 第几周(序数) | advancedFormat + weekOfYear | ||
| 第几周(两位) | advancedFormat + weekOfYear | ||
| ISO 周数 | advancedFormat + isoWeek | ||
| ISO 周数(两位) | advancedFormat + isoWeek | ||
| 周所属年份(按语言区域) | advancedFormat + weekYear | ||
| ISO 周所属年份 | advancedFormat + isoWeek | ||
| 小时 | |||
| 小时,0–23 | 内置 | ||
| 小时,00–23 | 内置 | ||
| 小时,1–12 | 内置 | ||
| 小时,01–12 | 内置 | ||
| 小时,1–24 | advancedFormat | ||
| 小时,01–24 | advancedFormat | ||
| 分与秒 | |||
| 分钟 | 内置 | ||
| 分钟(两位) | 内置 | ||
| 秒 | 内置 | ||
| 秒(两位) | 内置 | ||
| Day.js 不支持 | 十分之一秒 | Day.js 不支持 | |
| Day.js 不支持 | 百分之一秒 | Day.js 不支持 | |
| 毫秒 | 内置 | ||
| 上午 / 下午 | |||
| AM / PM(上午 / 下午) | 内置 | ||
| am / pm(小写) | 内置 | ||
| 时区 | |||
| UTC 偏移,±HH:mm | 内置 | ||
| UTC 偏移,±HHmm | 内置 | ||
| 时区缩写 | advancedFormat + timezone | ||
| 时区名称 | advancedFormat + timezone | ||
| Unix 时间 | |||
| Unix 秒 | advancedFormat | ||
| Unix 毫秒 | advancedFormat | ||
| 本地化格式 | |||
| 本地化时间 | localizedFormat | ||
| 本地化时间(含秒) | localizedFormat | ||
| 本地化数字日期 | localizedFormat | ||
| 本地化日期(含月份名) | localizedFormat | ||
| 本地化日期和时间 | localizedFormat | ||
| 本地化日期、星期和时间 | localizedFormat | ||
| 简短数字日期 | localizedFormat | ||
| 简短日期(含月份名) | localizedFormat | ||
| 简短日期和时间 | localizedFormat | ||
| 简短日期、星期和时间 | localizedFormat | ||
| 转义 | |||
| 方括号中的文字原样输出 | 内置 | ||
留空则按 ISO 8601 解析。
每一行先把参考日期平移,再用 from() 和 calendar() 描述它相对参考日期的位置。
| 平移 | from(ref) | calendar(ref) |
|---|---|---|
| .add(-45, 'second') | ||
| .add(-10, 'minute') | ||
| .add(-3, 'hour') | ||
| .add(-1, 'day') | ||
| .add(-5, 'day') | ||
| .add(-3, 'month') | ||
| .add(-2, 'year') | ||
| .add(30, 'minute') | ||
| .add(2, 'day') | ||
| .add(1, 'month') |
日常任务的写法和实时结果。点击“试一试”可载入到下方的代码运行器。
| 任务 | Day.js |
|---|---|
格式化当前时间 | dayjs().format('YYYY-MM-DD HH:mm:ss')→ |
加上若干天 | dayjs('2023-01-01').add(1, 'day').format('YYYY-MM-DD')→ |
距现在多久 Day.js: relativeTime | dayjs().subtract(7, 'day').fromNow()→ |
本月第一天 | dayjs().startOf('month').format('YYYY-MM-DD')→ |
今年最后一天 | dayjs().endOf('year').format('YYYY-MM-DD')→ |
本周开始(随语言区域) | dayjs().startOf('week').format('YYYY-MM-DD ddd')→ |
两个日期相差的天数 | dayjs().diff(dayjs('2022-01-01'), 'day')→ |
本月天数 | dayjs().daysInMonth()→ |
所在季度 Day.js: quarterOfYear | dayjs().quarter()→ |
日历式时间 Day.js: calendar | dayjs().add(1, 'day').calendar()→ |
是否在两个日期之间 Day.js: isBetween | dayjs('2024-12-31').isBetween('2024-01-01', '2025-01-01')→ |
是否为今天 Day.js: isToday | dayjs().isToday()→ |
是否为闰年 Day.js: isLeapYear | dayjs('2024-01-01').isLeapYear()→ |
严格校验日期 Day.js: customParseFormat | dayjs('2023-02-30', 'YYYY-MM-DD', true).isValid()→ |
解析自定义格式 Day.js: customParseFormat | dayjs('13/10/2026 14:30', 'DD/MM/YYYY HH:mm').format()→ |
Unix 时间戳(秒) | dayjs().unix()→ |
当前 UTC 时间 Day.js: utc | dayjs.utc().format()→ |
其他时区的时间 Day.js: utc + timezone + advancedFormat | dayjs().tz('America/New_York').format('YYYY-MM-DD HH:mm z')→ |
把时长转成自然语言 Day.js: duration + relativeTime | dayjs.duration(90, 'minutes').humanize()→ |
月末加一个月 | dayjs('2026-01-31').add(1, 'month').format('YYYY-MM-DD')→ |
调用 add() 但不重新赋值 | (() => { const d = dayjs('2026-01-01'); d.add(1, 'day'); return d.format('YYYY-MM-DD') })()→ |
输入一个使用 dayjs 的表达式,直接在浏览器中运行;常用写法里用到的插件都已启用,并使用上方选择的语言区域。
用你指定的日期实时试验 Day.js 的格式化、解析、相对时间和时长。每个结果都附带所需的 import 和 dayjs.extend() 代码,格式符速查表标明每个格式符依赖哪个插件。
设置「参考日期和时间」(或点「现在」)并选择「语言区域」;代码里用的是 dayjs.utc() 就打开「按 UTC 处理」。
在「格式字符串」里输入格式或点击常用格式;在「格式符速查」中点击任意格式符,可插入到光标处。
复制「输出」下方生成的代码,里面已经包含需要的插件导入。
在「解析演练」里填写日期字符串和期望格式,打开「严格解析」可拒绝不存在的日期。
在「常用写法」中点「试一试」,把代码载入「代码运行器」,修改后实时查看结果。
「格式符速查」的 Day.js 一列会标出“内置”或插件名,比如 Do、Q、X 需要 advancedFormat,L、LLLL 需要 localizedFormat。生成的代码会自动加上对应的 import 和 dayjs.extend()。
本页加载了全部插件。Day.js 核心只替换它认识的格式符,没扩展 advancedFormat 时,Q 会原样输出,Do 会变成日期数字后面多一个 o。按速查表扩展对应插件即可;DDD、E 等少数 Moment 格式符在 Day.js 中根本不存在。
非严格模式下,Day.js 会把不存在的日期顺延到下个月。打开「严格解析」(配合 customParseFormat 插件传入第三个参数 true),同样的输入就会显示为无效日期。
用方括号括起来。例如 [Week] W, GGGG 会输出单词 Week,后面跟 ISO 周数和年份。
不会。Day.js、插件和语言包都在当前页面中运行,表达式在你的浏览器里执行,常用写法用到的插件都已启用。
常用写法中的「其他时区的时间」演示了 dayjs().tz() 的用法,需要 utc 和 timezone 插件。要并排对比多个时区,可以用「时区转换」。