工具箱图标
XTools
Blog
/
Day.js 在线调试与格式速查Moment.js 在线调试与 Day.js 迁移日期计算与时间戳转换时区转换

© 2026 XTools. 保留所有权利.

隐私政策联系我们

    Day.js 在线调试与格式速查

    实时试用 Day.js 格式化与解析,附格式符号表、多语言与可复制代码
    • 文件不会离开你的设备
    • 在浏览器本地运行
    • 免费、免注册、无水印
    正在加载 Day.js…

    格式化演练

    输出
     

    格式符速查

    点击格式符即可插入到格式字符串中。示例使用上方的参考日期和语言区域。

    格式符示例含义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–24advancedFormat
    小时,01–24advancedFormat
    分与秒
    分钟内置
    分钟(两位)内置
    秒内置
    秒(两位)内置
    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 的表达式,直接在浏览器中运行;常用写法里用到的插件都已启用,并使用上方选择的语言区域。

    结果

    演练设置

    相关工具

    • Moment.js 在线调试与 Day.js 迁移
    • 日期计算与时间戳转换
    • 时区转换

    如何使用Day.js 在线调试与格式速查

    用你指定的日期实时试验 Day.js 的格式化、解析、相对时间和时长。每个结果都附带所需的 import 和 dayjs.extend() 代码,格式符速查表标明每个格式符依赖哪个插件。

    1. 1

      设置「参考日期和时间」(或点「现在」)并选择「语言区域」;代码里用的是 dayjs.utc() 就打开「按 UTC 处理」。

    2. 2

      在「格式字符串」里输入格式或点击常用格式;在「格式符速查」中点击任意格式符,可插入到光标处。

    3. 3

      复制「输出」下方生成的代码,里面已经包含需要的插件导入。

    4. 4

      在「解析演练」里填写日期字符串和期望格式,打开「严格解析」可拒绝不存在的日期。

    5. 5

      在「常用写法」中点「试一试」,把代码载入「代码运行器」,修改后实时查看结果。

    常见问题

    某个格式符需要哪个插件?

    「格式符速查」的 Day.js 一列会标出“内置”或插件名,比如 Do、Q、X 需要 advancedFormat,L、LLLL 需要 localizedFormat。生成的代码会自动加上对应的 import 和 dayjs.extend()。

    为什么格式符在这里正常,在我的项目里却不对?

    本页加载了全部插件。Day.js 核心只替换它认识的格式符,没扩展 advancedFormat 时,Q 会原样输出,Do 会变成日期数字后面多一个 o。按速查表扩展对应插件即可;DDD、E 等少数 Moment 格式符在 Day.js 中根本不存在。

    为什么 2023-02-30 被当成有效日期?

    非严格模式下,Day.js 会把不存在的日期顺延到下个月。打开「严格解析」(配合 customParseFormat 插件传入第三个参数 true),同样的输入就会显示为无效日期。

    怎样在格式里输出普通文字?

    用方括号括起来。例如 [Week] W, GGGG 会输出单词 Week,后面跟 ISO 周数和年份。

    代码运行器里的代码会发送出去吗?

    不会。Day.js、插件和语言包都在当前页面中运行,表达式在你的浏览器里执行,常用写法用到的插件都已启用。

    能把时间换算到其他时区吗?

    常用写法中的「其他时区的时间」演示了 dayjs().tz() 的用法,需要 utc 和 timezone 插件。要并排对比多个时区,可以用「时区转换」。