← Back to Tools

High Precision Stopwatch

Measure precise elapsed chronological splits with lap markers.

00:00:00.00

Why a browser stopwatch needs to be built carefully

A naive stopwatch implementation just increments a counter every second using setInterval — but browser timers aren't perfectly reliable under load; background tabs get throttled, and accumulated small delays cause real drift over long sessions. A precise stopwatch instead tracks actual elapsed wall-clock time (using Date.now() or performance.now() as a reference point) and calculates the displayed time from that reference on each update, rather than trusting that every interval tick fired exactly on schedule. This is the difference between a stopwatch that's accurate for a 5-minute workout and one that silently drifts by whole seconds over a long recording session.

Lap timing, and why it's more than just "mark a point"

Lap functionality needs to record both the cumulative time since start and the time since the previous lap, since both numbers matter for different purposes — a runner tracking splits cares about lap-to-lap pace, while total elapsed time tells them their overall performance against a target. This tool records both automatically each time you hit lap, so you don't have to do the subtraction yourself afterward.

Common uses

Using this stopwatch

Press start to begin timing, lap to record a split without stopping the clock, and stop to end the session — all calculations happen locally in your browser tab, so keeping the tab open and active is important for continuous accuracy during long sessions.

Common questions

Will the timer keep running accurately if I switch tabs?

Most modern browsers throttle background tabs to save battery, which can affect display update frequency — but because this stopwatch calculates elapsed time from a fixed start reference rather than counting ticks, the final displayed time remains accurate even after switching away and back.

Can I reset the stopwatch without losing my lap history?

Reset clears both the timer and lap list to start a fresh session; if you need to keep a record of laps, copy them down before resetting.

Related tools


Page last reviewed: July 2026