免费时间计算器
加减 HH:MM:SS 时长,或计算两个时间戳之间的间隔。适用于工时记录、赛段拆分和项目追踪。
格式:HH:MM:SS(如 01:30:45)或 HH:MM(如 02:15)
结果
02:15:30
2h 15m 30s · 8,130 秒合计
常见用途
- 计算工作小时数全天累加您的小时数以记录花费在任务上的时间或向客户开票。
- 计算赛事分段时间加减跑步、游泳或自行车圈速时间进行训练分析。
- 烹饪时间数学结合食谱的准备和烹饪时间,或计算何时开始才能在目标时间准备好晚餐。
- 视频时间轴计算累加片段持续时间以规划视频时间轴,或计算过渡的位置。
- 计算总专注时间对您的番茄工作法会话求和以跟踪每天或每周的专注时间。
工作原理
所有计算都在浏览器中使用手写解析器和整数运算完成——没有库、没有服务器。工具将 HH:MM:SS 字符串转换为原始秒数,进行加、减或求差,然后将结果格式化输出。
- 1输入解析你输入时,自定义的 parseHMS 函数按冒号拆分每个字段,并将各部分转换为单一整数——总秒数。它接受 HH:MM:SS、HH:MM 或纯数字(视为分钟),并拒绝任何非数字或超出时钟范围的输入。
- 2按模式进行计算在加/减模式中,两个秒数直接相加或相减。在时间间隔模式中,工具用结束时间减去开始时间;如果结果为负,就加上 86400 秒并将结果标记为跨越午夜。在工时表模式中,它将任意数量的时长行汇总为一个总和。
- 3计费舍入得出结果后,另一项计算会使用整数舍入(Math.round(abs / increment) * increment)将绝对秒数舍入到最接近的 6、10 或 15 分钟增量,然后以小数小时显示舍入后的值,用于开票。
- 4显示与复制结果最终的秒数会格式化为 HH:MM:SS、通俗的分解(例如 '2h 15m 30s')以及单位换算(小数分钟、小数小时、原始秒数)。复制按钮通过 navigator.clipboard.writeText 将 HH:MM:SS 字符串写入剪贴板。
指南
操作示例
工具打开时是“加减时长”,“时长 A”为 01:30:00,“时长 B”为 00:45:30,并选中了“+”。结果卡片显示“02:15:30”,其下是“2h 15m 30s · 共 8,130 秒”,三个方块分别显示 135.50 分钟、2.258 小时和 8,130 秒。点击“-”,结果变为“00:44:30”。把 00:45:30 放进 A,把 01:30:00 放进 B 并选中“-”,得到“-00:44:30”,秒数后面带有“(负值)”。现在点击“两时刻之间”,在“开始时间”输入 22:15,在“结束时间”输入 06:40。结果是“08:25:00”,并有一条提示“跨越午夜 — 于次日结束”。在“计费舍入”下选择“15 分钟”,旁边的小时数会从 8.42 变为 8.50。
使用哪些设置,以及限制
- 用冒号输入时间,或只输入一个数字表示分钟。 每个框接受 HH:MM:SS、HH:MM 或一个整数(按分钟计算):90 和 0:90 都表示 01:30:00。只接受数字和冒号,最多三段,所以小数(1.5)、负号以及 AM 或 PM 都会被拒绝。在“加减时长”和“时间表”中,小时数可以任意大,分钟或秒可以超过 59,所以 02:75 会被读作 3 小时 15 分钟。超过一天的总数会继续累计小时,例如 26:45:00。
- 在“两时刻之间”中使用 24 小时制的时钟时间。 “两时刻之间”把两个框都当作时钟时间,所以小时必须是 0 到 23,分钟和秒必须是 0 到 59。没有 AM 或 PM,所以下午 5:20 要写成 17:20。即使在这里,单独的数字也表示分钟:输入 9,工具会读作 00:09,所以请写成 09:00。如果“结束时间”早于“开始时间”,工具会假定是次日,并加上“跨越午夜 — 于次日结束”。两个相同的时间得到 00:00:00,而不是 24 小时。
- 用“时间表”模式累计多个班次。 “时间表”起始有两个空行。每行输入一个时长,格式相同;每个有效的行会在输入框旁边显示它自己的 HH:MM:SS,结果就是总和。“+ 添加行”会增加一行,× 按钮会删除一行,但最后一行会保留。空行会被忽略,但只要有一个无效的行,整个结果就会隐藏,直到你修正。要累计跨越午夜的班次,请先在“两时刻之间”中分别算出每一个,再把结果作为各行输入。
- 在加减模式中从班次里扣除休息时间。 要从 09:00 到 17:20 的班次中扣除 30 分钟的午餐,先在“两时刻之间”中输入这两个时间,得到 08:20:00。切换到“加减时长”,在“时长 A”输入 08:20:00,在“时长 B”输入 00:30,点击“-”得到 07:50:00。两种模式共用相同的两个输入框,所以切换之后旧的值仍然在:请覆盖它们。如果 B 大于 A,答案为负数,并带有前导减号显示。
- 为发票选择计费舍入。 结果出现后,“计费舍入”提供“关闭”、“6 分钟”、“10 分钟”和“15 分钟”。旁边的小时数是总数舍入到最接近的 6、10 或 15 分钟,并显示两位小数;正好一半时向上舍入。对于 08:08,“关闭”给出 8.13 小时,“15 分钟”给出 8.25。对于 08:07,“15 分钟”给出 8.00。舍入作用于总数,而不是每一行,并且不会改变主结果以及分钟和小时方块。
- 复制结果或分享这个算式。 “复制”会把 HH:MM:SS 文本(如 02:15:30 或 -00:44:30)放入剪贴板,随后按钮显示“已复制!”。“分享结果”会生成一个链接,打开后还原相同的模式和输入框:在手机上会打开分享面板,在电脑上则复制链接。输入内容位于地址中 # 之后,浏览器不会把它发送到服务器。加载共享链接时,每个框会被截断为 16 个字符,“时间表”链接最多保留 50 行。
常见问题及解决方法
- 在某个框下方,或在“时间表”的各行下方,提示“无效的时间 — 请使用 HH:MM 或 HH:MM:SS”。
- 该框里有数字和冒号之外的内容、多于三段,或有空的一段。会失败的例子有 1:30 PM、1.5、-1:00、1:2:3:4 和 1::30。请去掉字母、符号和小数。90 分钟请输入 90 或 01:30。像 1.5 小时这样的小数必须写成 01:30。在“时间表”中,空行没有问题;请找带红色边框的那一行。
- 提示“时钟时间使用 0-23 小时和 0-59 分钟/秒”。
- 这条提示只在“两时刻之间”中出现,那里两个框都必须是真实的时钟时间。24:00 不行,请使用 00:00,08:75 也不行。两种时间模式共用输入框,所以像 25:00 这样在“加减时长”中可用的值,切换之后会出现这条提示。如果你要的是一段时长而不是一天中的时刻,请留在加减模式。
- “两时刻之间”显示了 00:08:00 这样很小的结果,而你期望的是八小时。
- 不带冒号的数字会被读作分钟,所以 9 到 17 就是 17 − 9 = 8 分钟。请带冒号输入小时:09:00 和 17:00 得到 08:00:00。另外两种模式也遵循同样的规则,8 表示 00:08:00,而不是八小时。
- 结果带有“跨越午夜 — 于次日结束”的提示,但班次是在同一天内。
- “结束时间”早于“开始时间”,所以工具向前数到次日。17:00 到 09:00 得到 16:00:00。请检查两个框是否填反了,或者是否输入了未换算的 12 小时制时间,例如把 17:00 输成了 05:00。没有日期字段,所以“两时刻之间”只能显示短于 24 小时的间隔。
- “结果”卡片一直不出现,也没有显示错误。
- 只有在用到的每个框都含有有效时间时,才会显示结果。空框不会显示错误,也不会显示结果。在两个框的模式中,两个框都需要有值。在“时间表”中,至少有一行需要有值,任何无效的行都会隐藏结果。请填写空框,或修正带红色边框并在下方有提示的那个框。
对比分析
此工具对时长和时钟时间做算术:相加、相减、两个时间之间的间隔,以及一列时长,并在答案旁显示分钟、小时和计费舍入。它不了解日期、时区、夏令时或 AM 和 PM,所以无法计算周一下午 5 点到周三上午 9 点之间的小时数;“两时刻之间”只会跨越一次午夜,只涵盖短于 24 小时的间隔。电子表格适合有许多人、无薪休息或加班规则的工资核算,但它的时间单元格需要设置正确的格式。此页面无需任何设置,数字只留在页面中,除非你选择分享链接。