倒计时
生成器所有处理都在浏览器本地完成,数据不上传服务器
⚠️ `1:30` 是 **1 分 30 秒**(冒号从右往左是分、秒)。要 1 小时 30 分请写 `1h30m` 或 `90m`。
键盘:空格 开始 / 暂停,R 重置
一个能当倒计时、也能当正计时用的计时器:填时长(`25m`、`90s`、`1:30`)点开始就是倒计时,留空点开始就是正计时。常见时长做成了一排预设,其中 25 分钟是番茄钟。 ⚠️ 一处约定要写在前面:`1:30` 是 1 分 30 秒,冒号从右往左是分与秒 —— 想要 1 小时 30 分请写 `1h30m` 或 `90m`。这两种写法的歧义是这类输入框最常见的坑,所以这里不猜,直接定死并写在输入框下面。 走时用的是单调时钟(`performance.now()`)而不是墙上时间:系统对时、切换时区、用户手动改时间都不会让倒计时凭空跳一段。提示音是浏览器现场合成的(不加载音频文件),所以这个页面一个网络请求都没有。
功能
- 倒计时与正计时(时长留空即正计时)
- 九档预设:1 / 3 / 5 / 10 / 15 / 25(番茄钟)/ 30 / 45 分钟与 1 小时
- 读数在最后十秒切到带一位小数的形式,判断「还有几秒」不用盯整数位
- 到点发声(振荡器合成,不加载音频文件),并在读数下方标出已超时多少秒
- 暂停后继续不会丢时间,也不会跳 —— 已走时长与当前起点分开记
- ⚠️ 走时用单调时钟,系统对时不会让倒计时变长或变短
- 键盘:空格开始 / 暂停,R 重置
- 可以输入小数与带单位的形式:`1h30m`、`90s`、`2.5m`
- 全部在浏览器本地完成,不联网
使用方法
- 点一个预设,或自己填时长(`25m`、`90s`、`1:30`)
- 点「开始」,或直接按空格
- 需要中断就按空格暂停,再按一次继续;R 重置
- 到点会响三声,读数下方显示超时了多少秒(计时不会自动停)
常见问题
- `1:30` 到底是 1 分 30 秒还是 1 小时 30 分?
- 这个工具里是 1 分 30 秒。冒号形式按「从右往左是秒、分、时」读,所以 `1:30` 是一分三十秒、`0:05:00` 是 5 分钟、`1:30:00` 是一个半小时。之所以要定死而不是猜:两种理解都说得通,而猜错的代价是闹钟早响或晚响一小时,且不会有任何提示。要 1 小时 30 分就写 `1h30m` 或 `90m`,那两种写法没有歧义。
- 为什么到点了计时不自动停?
- 因为它同时也是一个正计时。到点之后继续走,读数下方会显示「已超时 N 秒」—— 这在很多场合有用:开会时你可能想知道「原定 15 分钟,实际拖了几分钟」,而如果到点就冻住,那个数字就没了。要立刻停下,按空格暂停或按 R 重置。
- 系统时间变了,倒计时会不准吗?
- 不会。走时用的是单调时钟(`performance.now()`),它从页面打开起单调递增,不受系统对时、时区切换、手动改时间的影响。用墙上时间(`Date.now()`)实现的话,一次系统对时就能让 25 分钟的倒计时变成 24 分或 26 分 —— 而且这种偏差只在特定机器上偶发,很难复现。
- 页面关掉之后还在计时吗?
- 不在。这是一个纯前端页面,没有后台也没有通知推送,关掉标签页计时就结束了。也正因为如此,它适合「我就坐在这儿盯着」的场景(做饭、休息、专注一段),不适合「明天早上叫我」。需要后者请用系统自带的闹钟。
相关工具
在线秒表
生成器带计次的在线秒表:空格开始或暂停、L 键计次、R 键重置,自动标出最快与最慢的一圈,切到别的标签页也不停表。
会议发言倒计时
生成器给一份「谁讲多久」的名单就能用的发言计时器:显示当前轮到谁、还剩多久,到点响一声,超时标红但不自动跳过。
反应速度测试
生成器点击变绿的面板测反应速度:等待时长每次随机,提前点记为抢跑且不进平均值,成绩给出最快、中位数与极差。
UUID 生成
生成器一次生成一整列 UUID v4、v7、ULID、NanoID 或 MongoDB ObjectId,每行一条,可直接粘进表格或脚本。随机数取自浏览器加密接口,不联网、不记录。
占位文本
生成器生成占位文本,可选拉丁文 Lorem ipsum、英文句子、中文或日文填充句,按段落、句子或单词输出。全部在浏览器本地生成,不联网。
模拟数据
生成器按「字段名:类型」写几行字段,就能得到一整批格式逼真的模拟数据,可导出 JSON、CSV、TSV、SQL、XML、YAML 或 TOML。