日期时间 本地计算 开箱即用 内置示例 不留痕迹

在线秒表

点开始走表,精确到百分秒;随时暂停、继续,按「计次」记录每一圈用时,自动标出最快与最慢的一次,重置一键归零。

体育测试、实验计时、泡茶煮蛋,秒表的需求就是「按下就停、读数要准」。这一页走的是系统高精度时钟,读数到百分秒;单次和累计两种计法,几轮成绩一起比时还能标出最快最慢。手按按钮天然有零点一二秒的反应延迟,要严格精度时下面有说明。

精度口径:计时基于浏览器的高精度时钟(performance.now,亚毫秒级),显示到百分秒;但「人手点按钮」本身有 100~200ms 反应延迟,需要严格精度的场合(体育测试、实验记录)建议以自动触发为准,手按结果当参考值。

0:00.00

使用步骤

  1. 点「开始」走表;「暂停」后可「继续」,累计不丢。
  2. 跑动中点「计次」记一圈,列表显示每圈用时。
  3. 看最快 / 最慢圈标记,分析节奏波动。
  4. 「重置」归零清空计次;百分秒显示,手按有反应延迟属正常。

计算原理与示例

怎么开始和暂停

点「开始」走表,再点一次变「暂停」;暂停后点「开始」会从暂停处继续,不会清零。

计次怎么用

走表过程中点「计次」记录当前累计时间;列表里「单次」是这一圈用了多久,「累计」是从开始到这一刻的总时长。

最快/最慢标记是什么

计次 ≥ 2 次时自动给最短的单次标「最快」、最长的标「最慢」;点「重置」清空计时与所有计次。

代码示例

JavaScript 高精度秒表:差值累计

let running = false, base = 0, acc = 0;
const now = () => performance.now();

function start() { base = now(); running = true; }
function pause() { if (running) { acc += now() - base; running = false; } }
function elapsed() { return acc + (running ? now() - base : 0); }

// 暂停/继续只累计差值,不依赖 setInterval 累加,无节流漂移
// 计圈:每次 lap 时记录 elapsed() 快照,相邻快照相减得圈时

Python perf_counter 计时

from time import perf_counter

t0 = perf_counter()
# ... 被测代码 ...
elapsed = perf_counter() - t0   # 秒(浮点,亚毫秒精度)

# 计时测量一律用 perf_counter(单调时钟),
# 不要用 time.time()——它会被系统校时拨动

常见问题

精度是多少?

显示精确到 0.01 秒(百分秒),内部按毫秒累计;页面每 50 毫秒刷新一次显示。

暂停后再开始会清零吗?

不会。暂停只是停住,再点「开始」从暂停的时刻继续累计;只有点「重置」才会归零并清空计次。

「单次」和「累计」有什么区别?

「累计」是从开始到按计次那刻的总时间;「单次」是这一圈的时间,等于本次累计减上一次累计。第一圈两者相同。

最快/最慢是怎么标的?

计次满 2 次后,单次用时最短的一行标「最快」、最长的一行标「最慢」;并列时取先出现的那次。

切到别的标签页会停吗?

不会。计时基于系统时钟的差值计算,切走再切回来时间照算,不会漏计。

和倒计时器有什么区别?

秒表是「正着数」,从 0 往上累计,不知道终点;倒计时器是「倒着数」,设好时长往 0 走,归零提醒。

关掉页面计时会丢吗?

会。秒表状态只存在当前页面里,刷新或关闭即清零;需要长时间计时建议用倒计时器并保持页面打开。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。