Skip to main content

Online stopwatch

Start, lap, stop. Counts to hundredths of a second, keeps the lap table, and copies the lot when you are done.

runs in your browser · nothing is sent anywhere

stopwatch

00:00.00

How to use it

  1. Press Start. The digits turn green while the watch runs.
  2. Lap records a split without stopping; each lap keeps its own time and the running total.
  3. Copy puts the whole lap table on the clipboard. Reset clears everything.

Why it does not drift

The elapsed time is measured against performance.now(), a monotonic clock, and redrawn on each animation frame. A stopwatch built on setInterval accumulates error because the browser is free to fire the callback late, and after ten minutes in a busy tab it can be seconds out. Here the display is derived from the real start time on every frame, so the error never accumulates.

The digits use tabular figures, which means each one occupies the same width and the number does not jitter as it counts. They are also never animated: a figure the page vouches for should hold still.

Laps

  • Each row holds the lap time and the total at that moment.
  • Newest lap sits at the top.
  • Copying produces plain text lines, ready to paste into a message or a spreadsheet.

Questions

How precise is it?

It displays hundredths of a second and measures against the browser monotonic clock, so it does not drift over long runs. Human reaction time on the button is the larger error by far.

What does Lap do?

It records a split without stopping the watch. The table shows how long that lap took and what the total was when you pressed it.

Does it keep running if I switch tabs?

The clock keeps running, yes — the elapsed time is computed from the start moment, not from how often the page was redrawn. The display catches up when you come back.

Is my timing saved?

No. Reload the page and the watch and the laps are gone. Nothing is sent to affpapa.org.

Project sponsors

Companies that keep this analytics open