Stopwatch & Timer

A drift-free stopwatch with lap splits, and a countdown with an alarm.

Free No sign-up Runs in your browser Utilities

Elapsed

00:00.00

Ready

Why the clock does not drift

The obvious way to build a stopwatch is to add 10 ms on every tick. That drifts badly — timers fire late when the tab is busy, and the error accumulates, so a stopwatch can lose a second a minute. Here the elapsed time is always derived from timestamps: the start time is recorded once and the difference is recomputed on each frame, so a delayed frame changes nothing about the reading.

Laps and splits

Each lap shows its split — the time since the previous lap, which is what a runner actually wants — alongside the cumulative total. Laps are stored as cumulative marks rather than pre-computed splits, so a rounding error in one lap can never accumulate into the next.

Fastest and slowest are marked only once there are at least two laps; calling a single lap "the fastest" means nothing.

Display precision

The stopwatch shows centiseconds rather than milliseconds. A third digit changes far too quickly to read and makes the whole row jitter as digit widths change. The countdown shows whole seconds, since sub-second precision on a five-minute timer is noise.

The alarm

When a countdown finishes, six short tones are generated with the Web Audio API — no audio file is downloaded. Browsers block audio until you have interacted with the page, so start the timer with a tap or a click and the alarm will sound. Keep the tab open: a background tab may throttle timers, and the tone cannot play if the page has been discarded.

Related tools

Browse all 45 tools