YourWorldTime

时长计算器

设定一个起点和一个终点——如果不同,各用各的时区——就能得到真正流逝的时间,包括那些长 23 小时或 25 小时的日子。

开始
结束

已过

小时
分钟

日历算术不是钟表算术

“一天之后”和“24 小时之后”是两条不同的指令,而且一年里有两次会给出不同答案。如果一个夜间任务定在当地时间 02:30,它会在某个秋天的早晨跑两次,在某个春天的早晨一次都不跑。如果改成每 86,400 秒跑一次,它反而会从 02:30 漂开一个小时。

两种行为都不是缺陷,它们回答的是不同的问题。麻烦从代码做了其中一件、而人期待的是另一件时开始。这个计算器永远回答钟表那个问题——真正过去了多少时间——并把日历天数并排列出。

常见问题

为什么一天有时算出来是 23 或 25 小时?
因为它本来就是。表往前拨的那天,从午夜到午夜是 23 小时;往回拨的那天是 25 小时。这个计算器在相减之前先把两端归结为绝对时刻,因此报告的是真正过去的时间,而不是日历暗示的时间。
两端可以在不同的时区吗?
可以,而且这正是关键。一班 17:00 从东京起飞、同日上午 09:30 降落旧金山的航班,飞了九个半小时,而不是负七个半小时。把每一端设成自己的时区,账就算得通了。
闰秒算在内吗?
不算。浏览器不暴露闰秒——JavaScript 的时钟完全忽略它们,所以跨过一个闰秒的时间段会少报一秒。UTC 有史以来一共 27 秒,这对卫星导航有意义,对你在这里可能测量的任何东西都没有。
如果终点早于起点呢?
会明说,同时照样报告数值大小。负的时长通常是打错了,而悄悄把符号翻过来只会把它藏起来。