Timestamp Diff — 计算两个日期或时间戳之间的时长
精确计算两个日期或 Unix 时间戳之间的时长。输出秒、分钟、小时、天、周、月和年 —— 全部在浏览器中完成。
计算两个时间点之间的时长,是最常见的日期操作之一,也是最容易出错的之一。1 月 31 日到 3 月 1 日之间的天数取决于这一年是不是闰年(相差一天)。DST 切换当天的凌晨 1:30 到 3:30 之间的小时数,可能是 1 小时,也可能是 3 小时,取决于时钟调整的方向。表达成「3 个月」的时长是有歧义的 —— 对于 2 月、对于 30 天和 31 天的月份、对于两端不完整的月份,含义各不相同。Timestamp Diff 工具能正确处理日历算术,并把结果分解成所有有意义的单位:总秒数、分钟和剩余秒数、小时和剩余分钟数,一直分解到年。
工具接受浏览器内置解析器能理解的任何日期格式 —— 带或不带时区偏移的 ISO 8601、用于邮件头的 RFC 2822、秒或毫秒精度的 Unix 时间戳,以及用户本地环境下的自然语言日期。输出包含 ISO 8601 时长字符串(P3DT6H30M 表示 3 天 6 小时 30 分钟),这是 XML Schema、JSON Schema 以及 Java 的 java.time.Duration 类中表达时长的标准格式。本网站上配套的 Epoch-to-Date 和 Date-to-Epoch 工具负责时间戳与人类可读日期之间的转换,因此完整的日期处理流程 —— 转换、比较、计算时长 —— 一站式覆盖。
使用方法
输入两个时间戳
输入两个日期或 Unix 时间戳。输入框接受 ISO 8601 日期(2026-06-15T14:30:00Z)、秒或毫秒精度的 Unix 时间戳,以及「June 15, 2026 2:30 PM」之类的自然格式。
选择输出单位
选择主要输出单位 —— 秒、分钟、小时、天、周、月或年。详细分解会同时展示所有单位:差值用每个单位及其余数表示。
复制结果
可以把时长复制为单个数字、可读的分解形式,或 ISO 8601 时长字符串(P3DT6H30M)。ISO 格式兼容 XML Schema、JSON Schema 以及 Java 的 Duration 类。
常见问题
会处理闰年和夏令时吗?
以天或更大单位进行的计算使用日历感知的算术,会考虑闰年(2 月 29 日)和不同长度的月份。以秒或更小单位进行的计算则是绝对的挂钟差值。DST 切换不做处理 —— 如果时间戳跨越了 DST 边界,挂钟差与经过时间差可能不一致。
Unix 秒和 Unix 毫秒有什么区别?
Unix 秒时间戳是 10 位数字(例如 1718400000)。Unix 毫秒时间戳是 13 位数字(例如 1718400000000)。工具会根据数字大小自动识别并转换两种格式。粘贴 10 位数字时按秒处理。
能计算某个日期到「现在」的差值吗?
可以 —— 把其中一个字段留空(或点击「now」)即可使用浏览器时区下的当前日期和时间。常用于根据出生日期计算年龄、根据入职日期计算司龄,或计算距离某个截止时间的剩余时间。
计算使用的时区是什么?
对带 Z 后缀或不带时区偏移的 ISO 8601 输入,默认使用 UTC。对不带时区的本地日期和时间,使用浏览器的本地时区。带显式偏移(+05:30、-08:00)的时间戳会按该偏移处理。
限制说明
- 不支持循环排期计算工具计算的是两个固定点之间的单次时长。对于循环排期(每周一、每两周),请使用 cron 表达式解析器或专门的排期工具。
- 不识别工作日输出是日历天数,不是工作日。要做工作日计算(排除周末和节假日),需要手动加上节假日排除规则,或使用专用库。
- 月和年的差值是近似值1 月 31 日到 4 月 30 日之间的「3 个月」与 1 月 30 日到 4 月 30 日之间的「3 个月」并不相同。基于月的输出会四舍五入到最接近的整月;天和月的分解会展示精确的余数。
平台说明
- macOS
- macOS 自带的「计算器」App 有日期差模式。浏览器工具在此之上新增了所有单位同时展示的分解形式,以及便于程序化使用的 ISO 8601 时长输出。
- Linux
- 来自 `dateutils` 的 `datediff` 命令可以计算日期差。浏览器工具在此之上新增了时间戳格式的自动识别,以及一个视图里所有单位的分解。
- Web
- 完全在浏览器中运行。时间戳在本地处理 —— 不会向服务器发送任何日期。适合用来为内部项目时间线计算时长。