倒计时器
创建倒计时,支持自定义时间和声音提醒
设置时间
什么是在线倒计时器?
在线倒计时器是一个免费的浏览器工具,从你设定的时间开始倒数,归零时响铃提醒。设 25 分钟做番茄钟、6 分钟煮溏心蛋、45 分钟模拟考试——只要是需要限时的任务都能用。比起反复看表,倒计时器让你把注意力完全放在手头的事情上,时间到了铃声自然会叫你。不用下载,不用注册,所有数据都在浏览器里,不会上传。
使用方法
使用方法
- 输入时、分、秒,或直接点击预设时间
- 点击「开始」启动倒计时,点击「暂停」可暂停
- 临近结束时显示变黄,最后 10 秒变红
- 倒计时归零时播放提示音
计时说明
- 浏览器计时器在标签页后台、设备休眠或省电模式下可能会暂停或产生偏差。
- 用于会议、考试或生产作业时,请以系统时钟或专用计时器为准。
使用场景
技术原理
这个倒计时器不靠 setInterval 数秒——那种方式会累积误差,因为浏览器的事件循环只保证最小延迟,不保证固定节奏。实际做法是:用 Date.now() 记录开始时间,每一帧重新计算剩余时间 = 目标时长 − (Date.now() − 开始时间)。这种自校正的设计意味着即使 JavaScript 线程偶尔忙于垃圾回收或布局计算,显示的时间依然准确。
画面更新由 requestAnimationFrame 驱动,跟屏幕刷新率同步(通常是每秒 60 次,高刷屏 120 次)。画面流畅,但真正的计时靠的是 Date.now() 计算——动画只管显示,不管计时。
标签页切到后台后,浏览器会大幅限制计时器。隐藏的标签页,setInterval 可能被压到每秒最多执行一次,非活跃标签页在电池供电几分钟后甚至会被完全冻结。计时器在标签页重新可见时立刻用系统时钟校准,显示直接跳到正确的剩余时间。结束提示音通过 Web Audio API 播放一个短促的提示音。这需要用户先有一次交互(比如点击开始按钮),这是浏览器的自动播放策略,防止网页未经允许就发出声音。如果标签页被隐藏或系统处于休眠状态,提示音不会响,但回到页面时显示会立即更新到正确的时间。
- 用 Date.now() 追踪墙上时钟时间——每帧重新计算剩余时间,不靠 setInterval 累积计数。
- requestAnimationFrame 将显示更新同步到屏幕刷新率,画面流畅。
- 后台标签页被浏览器限流,切回时用系统时钟校准,显示立刻跳到正确时间。
- Web Audio API 播放提示音,需要用户先有一次交互(如点击开始)才能启用音频。
- 所有计算在浏览器本地完成,不向任何服务器发送数据。
示例
番茄工作法(25 分钟专注 + 5 分钟休息)
时长 :00 : 25 : 00
开始 :14:00:00
结束 :14:25:00(响铃)
下一步:5 分钟休息计时(预设)做菜 —— 溏心蛋(6 分 30 秒)
设置 :00 : 06 : 30
剩 1:00 -> 视觉提示高亮显示剩余时间
到 0:00 -> 响铃 + 页面横幅提示:倒计时结束!考试监考 —— 45 分钟笔试
时长:00 : 45 : 00
开始:09:15:00
结束:10:00:00
提示:让标签页保持在前台——后台标签可能会限速,
45 分钟内可能会偏差好几秒。常见问题
切换标签页之后倒计时还会继续吗?
会。计时器用系统时钟追踪时间,不是靠动画帧计数。切回来的时候,显示会立刻跳到正确的剩余时间。
标签页在后台时闹铃还会响吗?
看浏览器和设备。有些浏览器为了省电会限制后台标签页的音频播放。如果闹铃很重要,让计时器标签页保持可见,或者单独开一个窗口。
电脑进入睡眠会怎样?
计时器用系统时钟计时,所以睡眠期间时间也是准的。唤醒后显示会自动追上。但系统挂起期间闹铃不会响。
计时器的精度有多高?
显示每秒刷新一次,但内部用毫秒级时间戳。日常使用——做饭、开会、健身——精度完全够用。后台标签页因为浏览器限流,精度会有所下降。
能保存预设时长吗?
页面内置了 5 分钟、10 分钟、25 分钟、45 分钟的快捷按钮。其他时长直接在时、分、秒输入框里填即可。
夏令时会影响倒计时吗?
不会。计时器算的是经过的秒数,不是日历时间。设 2 小时倒计时,不管夏令时怎么调,到点就是 2 小时后。
有任何数据会被上传吗?
不会。计时器完全在浏览器里运行,计时数据不会离开你的设备。