Note 03 / Elapsed time

跨零点的时间差,为什么总是差一小时

夜班从 22:00 到次日 06:00,直接用 6 减 22 会得到负数。把结束日期留在同一天,时间轴就错了;日期往后挪一天,8 小时才会出现。

时间差更新于 2026.10.28

跨夜计算最常见的错误,是只改时间、不改日期。22:00 到 06:00 看起来像两个时间点,实际上第二个 06:00 属于第二天。日期不变时,结束时刻在时间轴上早于开始时刻,减法当然得不到 8 小时。

把跨夜拆成两段

最直观的算法是把区间从零点切开:第一天 22:00 到 24:00 是 2 小时,第二天 00:00 到 06:00 是 6 小时,加起来是 8 小时。这个思路不依赖任何公式,拿一张纸就能核对。

用日期时间相减也能得到同样结果,但结束时间必须写成“次日 06:00”。在 时间差计算器 里,结束日期选到第二天,开始和结束之间会自动得出 8 小时。

一个检查方法:如果结束时间的数字比开始小,先怀疑跨天。把结束日期加一天再算,看看结果是否变得合理。

休息时间要在总时长之后扣

夜班中间可能有 30 分钟交接或 1 小时用餐。正确顺序是先算 22:00 到 06:00 的 8 小时,再减去休息。总时长 8 小时、休息 30 分钟,净时长是 7.5 小时;如果先改结束时间,很容易把日期改错。

如果休息跨过零点,例如 23:30 到 00:15,仍然把它当成一段 45 分钟的休息即可。只要总休息不超过总时长,结果就不会为负。

8 小时、7.5 小时、450 分钟

同一个时长可以写成不同单位。8 小时等于 480 分钟,也等于 8.00 小时;7 小时 30 分钟等于 450 分钟,也等于 7.50 小时。换算本身不难,难的是不要把它们混在一起加总。

例如两段夜班分别是 7 小时 45 分钟和 6 小时 20 分钟,先分别换成分钟相加,得到 845 分钟,再换成 14 小时 5 分钟,就不会出现“7.45 + 6.20 = 13.65 小时”这类错误。小数点和分钟不是同一套进制。

夏令时与异地时间

中国境内不实行夏令时,所以本地时间计算通常很直接。但如果计算跨越有夏令时的国家,墙上时间可能出现 23 小时或 25 小时的一天。航空公司、跨国会议和跨境物流的时长,最好统一换算成 UTC 或同一时区后再算。

本站按浏览器本地时区解释输入,不主动转换时区。涉及异地时间时,先把两边都换成同一个时区,再填进来,结果才具有可比性。

夜班、长途和值班的三个输入习惯

  • 夜班:固定把结束日期设成次日,休息分钟数单独记录。
  • 长途交通:出发和到达时间如果跨时区,先换算,再计算;不要把两个城市的当地时间直接相减。
  • 值班:如果跨了多个班次,按段计算后相加,比合成一个超长区间更容易核对。

几组时长对照

结束时间均在次日或之后,按本地时间计算。
开始结束总时长扣 30 分钟后
10-28 22:0010-29 06:008 小时7.5 小时
10-28 20:0010-29 08:0012 小时11.5 小时
10-28 23:3010-29 07:157 小时 45 分7 小时 15 分
10-31 22:0011-01 06:008 小时7.5 小时

用具体时刻验算

打开 时间差计算器,点“跨夜 22:00–06:00”的快速填入,结果会显示 8 小时。再把休息改成 30 分钟,净时长变为 7.5 小时。这样比只看公式更容易发现输入习惯里的问题。

如果结果是负数,先看结束日期;如果结果少了一小时,先看是否跨过夏令时;如果结果多出休息时间,先看休息有没有被重复扣减。按这个顺序排查,通常几步就能找到原因。