日期计算器有两种模式. 加减模式接收一个起始日期, 一个动作, 一个数量和一个单位, 打印一行: 起始日期, 符号, 数量, 单位, 以及把星期和月份完整拼写出来的着落日期. 日期差模式接收两个日期, 打印两者之间精确的天数, 以及由该天数推出的周, 月, 年. 每个数字都由浏览器内的 Date 对象直接算出, 没有后端, 没有 API 调用. 从日期计算器开始, 保留默认: 起始日期输入 2026-09-24, 保持增加选中的天, 输入 30.
加减模式的结果行
结果行读作起始日期, 符号, 数量, 单位, 等于着落日期: 起始日期按原始 ISO 值打印, 着落日期完整拼写出星期, 月份名和日, 用页面语言. 这个运行例子打印 2026-09-24 + 30 天 = 2026年10月24日星期六. 同一运行在德语页面打印 Samstag, 24. Oktober 2026, 英语页面打印 Saturday, October 24, 2026, 日语页面打印 2026年10月24日土曜日, 因为着落日期通过浏览器区域数据格式化, 而不是固定模板. 动作下拉框翻转符号, 2026-09-24 减 14 天读作 2026年9月10日星期四. 结果旁的复制按钮把整行放进剪贴板.
四个单位
单位下拉框提供天, 周, 月, 年, 两组行为不同. 天和周是天数算术: 周先换算成天, 所以 5 周以 35 天进入, 2026-09-24 加 5 周着落在 2026年10月29日星期四. 月和年是日历算术: 移动月或年字段, 保留日, 所以 2026-09-24 加 3 个月着落在 2026年12月24日星期四. 数量在算术前被截断在 3650 天, 520 周, 120 月和 10 年, 同一十年视野的四种表达, 超出截断的值被削到上限, 所以 3651 天以 3650 进入, 而不是报错.
月和年的溢出
日历算术保留日, 当目标月没有那一天时, 多出的日子溢出到下一个月. 2026年1月31日 加 1 个月, 2026 年 2 月只有 28 天, 多出的 3 天把结果落到 2026年3月3日星期二, 而不是 2 月 28 日. 同样的起始在 2024 年落到 3 月 2 日, 因为那年 2 月有 29 天. 加年对年字段应用同样的规则: 2024年2月29日 加 1 年, 2025 年 2 月没有 29 日, 所以落到 2025年3月1日. 溢出在减的方向同样发生: 2026年3月31日 减 1 个月落到 2026年3月3日, 而 2026年1月31日 减 1 个月干净地落在 2025年12月31日星期三, 因为 12 月有 31 天. 结果行总是打印算出的日期, 所以溢出可见而不是静默. 未来日期指南把同一规则用到截止日期和目标日期问题.
日期差模式
日期差模式接收两个日期, 计算它们之间的绝对毫秒差, 所以两个输入的顺序无关. 天数是毫秒差除以 86400000 再取整, 它是该行唯一精确的数字. 周, 月, 年由天数除以固定除数 7, 30.44 和 365.25 推出, 各自向下取整. 从 2024-01-01 到 2026-07-01 的运行打印 912 天 = 130 周 ≈ 29 月 ≈ 2 年. 近似值有讲究: 按日历数, 2024年1月1日 到 2026年7月1日 恰好 30 个月, 但 912 除以 30.44 是 29.96, 向下取整成 29, 所以月数字是天数的换算, 不是月份的计数. 短跨度, 2026-09-24 到 2026-12-25, 打印 92 天 = 13 周 ≈ 3 月 ≈ 0 年.
日期如何解析
日期输入返回纯 YYYY-MM-DD 字符串, 工具用年, 月, 日组件在本地午夜构造 Date, 而不是解析字符串, 因为纯日期字符串会解析成 UTC 午夜, 在 UTC 以西的每个时区都会早读一天. 从组件构造日期让 2026-09-24 在用户自己的时区保持 2026-09-24, 所以两个日期之间的天数不取决于用户坐在哪里.
它不是什么
日期计算器不是年龄计算器: 对于结束日期固定为今天, 答案是岁, 月, 日年龄的那一个情况, 年龄计算器跑那个分解. 至于纪元秒数, Unix 时间戳转换把同一跨度的日期改写成整数, 天数来自差值除以 86400. 它也不数工作日: 两种模式都数日历日, 包含周末和假日. 关于日期差的工作日一面, 日期差指南讲星期一到星期五的规则和它的边界情况.