倒计时、秒表、番茄钟、世界时钟四合一,本地运行不发请求。倒计时支持快捷预设与到点提醒,番茄钟按 25+5 循环并记录今日完成数,世界时钟覆盖 23 个城市并实时计算夏令时。
煮面要 8 分钟、开会还剩多久、专注 25 分钟休息 5 分钟、想知道纽约现在几点——这四件事都属于「跟时间有关」,但在网上通常散落在四个不同的网站。合成一页的好处是不用记哪个网站有哪个功能。
四个计时器的状态互相独立:倒计时在走的时候可以切去用秒表,秒表不会停,倒计时也不会停,切回来数字都对。
绝大多数网页计时器是这么写的:每 1 秒把剩余秒数减 1,然后刷新显示。这个写法在页面一直显示在最前面时没问题,一旦你切到别的标签页就会出错。
原因是浏览器的省电策略:标签页进入后台后,定时器会被节流——Chrome 88 起,后台标签页的 setInterval 最快也只能 1 分钟跑一次。也就是说你切走 5 分钟,那个「每秒减 1」的逻辑只跑了 5 次,回来时倒计时少了 5 秒,而实际上过了 300 秒。省电模式、笔记本合盖、手机熄屏的节流更激进。
本工具的做法是**不数数**:开始计时时只记下「目标时刻」(一个时间戳),之后每次刷新都用「目标时刻减去当前时刻」反算剩余量。定时器只负责触发重绘,跑得慢一点、漏掉几十次都无所谓,因为剩余量不是攒出来的,是每次重新算的。所以切走 5 分钟回来,数字一次就对。
到点会做三件事:页面内弹出提示条、播放三声提示音、把标签页标题改成剩余时间(运行期间每秒更新,切到别的标签页也能看见还剩多久)。
提示音是用 Web Audio 现场合成的,不加载任何音频文件。但浏览器有自动播放限制:页面加载时直接创建音频上下文会得到「挂起」状态,到点时是静音的——这是「闹钟不响」最常见的原因。所以本工具要求你先点过一次「开始」,那一次点击才会解锁声音;页面上没有解锁时会明确提示。
如果浏览器把标签页冻结了(内存节省模式、长时间不看的标签页),到点的定时器可能被推迟到你切回页面那一刻才执行。这不是本工具能绕开的限制,网页在没有后台权限的情况下做不到真正的系统级闹钟。
倒计时存的是「墙上某个时刻」,所以用 Date.now():用户把系统时间改快一小时,倒计时就该跟着少一小时。
秒表测的是「已经过了多久」,用的是 performance.now()——它不受系统时间调整影响,改时钟不会让秒表跳变。代价是部分平台上系统休眠时它也会暂停,所以跨过睡眠的秒表可能少算,这一点在手机上尤其明显。两种口径不能统一,统一了一定有一边是错的。
记次记的是每一段的**累计值**(从开始到这一按),界面上同时显示本段用时和累计用时。暂停状态下不允许记次:总时长不再变化,连点两次会得到两条一模一样的记录,最快最慢也失去意义。
很多番茄钟会在专注结束时自动开始休息。听起来省事,实际体验很差:用户这时可能已经离开座位去倒水了,自动开始的 5 分钟休息在他不在的时候走完,回来发现「休息过了但并没有休息」,接着又进入下一轮专注。
所以这里到点后停在一个待启动状态:提示「专注 25 分钟完成。休息 5 分钟?」并播放提示音,用户点「开始休息」才真正开始计时。跳过也不会打乱节奏——跳过休息不计入完成轮数,跳过专注也不会被算成完成了一轮。
每 4 轮专注换一次 15 分钟的长休息(这个 4 可以改)。今日完成数存在浏览器本地,按本机日期分桶,过了零点自动从 0 开始,不会因为时区换成 UTC 就提前或延后清零。
同一个城市夏天和冬天的时差可能差一小时。纽约是 UTC−5(冬令时)也是 UTC−4(夏令时),伦敦是 UTC+0 或 UTC+1。如果把时差写死在代码里,换季那天就会错一小时,而用户通常不会立刻发现。
本工具每次刷新都重新查浏览器内置的 IANA 时区数据库,所以跨过夏令时切换日也准。日期栏的「昨天/今天/明天」是按当地日期与本地日期比较得出的,不是简单看小时数——北京比纽约早 13 小时,经常出现一边已经是明天、一边还是今天。
昼夜图标按**当地**小时判断(6:00–17:59 算白天),不是按本地小时,否则北京的太阳会跟着纽约的时间升起来。
技术上做不到,也没有诚实的替代方案。网页关闭后没有代码在运行,除非用户装了浏览器扩展或允许站内通知常驻,而那两样都不是一个「用完就走」的工具有理由索要的权限。
硬做一个「看起来能在后台提醒」的闹钟,只会让用户误以为可靠,然后在真正需要它的时候失败。要做跨天提醒,用手机自带的闹钟或日历,那个才是系统级的。本工具专注在「开着页面时把一段时长算准、看准」。
键盘操作在计时类工具里是刚需——手上沾着面粉按屏幕很不方便。光标在输入框里时不响应快捷键,避免打字时误触。
免费、免登录、不限次数,没有广告位。四个计时器全部在浏览器里运行,不向服务器发送任何计时数据——页面上唯一的请求是加载工具列表与使用策略,与你的计时内容无关。
浏览器本地只存两样东西:番茄钟的今日完成数与时长设置、世界时钟的城市列表。都不含任何身份信息,清理浏览器数据即全部删除。
会,而且剩余时间是准的。本工具不靠「每秒减 1」计时,而是记下目标时刻,每次刷新用「目标时刻 − 当前时刻」反算,所以后台被节流、定时器少跑几十次都不影响结果。切回来时数字一次就对,不会出现「切走 5 分钟只少了 5 秒」。
浏览器的自动播放策略要求先有一次用户点击才能播放声音。页面加载时就创建音频上下文会得到挂起状态,到点静音。点过任意一个「开始」按钮后就解锁了,页面顶部会显示解锁提示。如果仍然没有声音,检查系统是否静音或开了勿扰模式。
不会。网页关闭后没有代码在运行,这是浏览器的限制,不是本工具的选择。需要关掉页面也响的提醒,请用手机自带的闹钟或日历——那才是系统级的。本工具专注在「页面开着时把时长算准」。
99 小时 59 分 59 秒。超过会明确提示并按上限计算,而不是悄悄给一个错的值。同时也支持「到点」模式:选一个时刻(比如 09:30),如果今天这个时间已经过了,会自动顺延到明天。
会。完成数按本机日期分桶存在浏览器里,日期一变就从未完成状态重新计。用本地日期而不是 UTC 日期,所以在东八区凌晨 0 点到 8 点之间也不会把半夜的番茄算到前一天。
如果是夏令时期间,差一小时通常是因为对方用了写死的标准时差。纽约冬令时是 UTC−5、夏令时是 UTC−4,伦敦是 UTC+0 或 UTC+1。本工具每次都重新查浏览器的时区数据库,所以换季那天也准。部分显示非整点时区(如印度 +5:30、尼泊尔 +5:45)会显示成 5:30 而不是 6h。
99 次。超过会提示先归零再重新开始。每一次记的是从开始到那一按的累计时间,界面同时给出本段用时(与上一次的差值),并自动标出最快与最慢段;两段差距不到 5% 时不上色,因为那只是毫秒级噪声。
倒计时和番茄钟运行时会自动把剩余时间写进标签页标题,例如「03:24 · 倒计时 | MinTools」,这样你在别的标签页也能看到还剩多久。计时结束或暂停后会恢复原标题。