Skip to content

Online Stopwatch

Browser stopwatch with start/stop, laps, and 10-millisecond precision, runs entirely client-side, no install.

What this is

A working stopwatch in the browser. Start, stop, resume, reset, lap. Time displays in MM:SS.cs format (centiseconds = 1/100th of a second). Past one hour it switches to HH:MM:SS.cs.

Lap times track a running list with the elapsed time at each lap point and the delta from the previous lap. Useful for interval training, repeated test runs, multi-stage processes, anywhere you want both cumulative time and per-segment time.

How precise is it?

The display updates 60 times per second (matching most monitor refresh rates). Underlying time uses performance.now(), which is browser-resolution timer that’s typically accurate to ~5 microseconds, well past what humans can perceive. For most purposes, workouts, cooking, debugging, the precision is overkill.

For applications that genuinely care about millisecond-level accuracy (sports timing, scientific experiments), browser stopwatches aren’t the right tool. Hardware timers and dedicated photo-finish equipment beat browser implementations by several orders of magnitude.

When you’d actually use this

  • Workout intervals: 30-second sets, 15-second rest, repeat. Lap button marks each set.
  • Cooking: knowing the boil started 4:30 ago without watching the clock.
  • Reading or studying: track focused work blocks (alternative to a Pomodoro timer for self-paced sessions).
  • Tabletop games: tracking turn lengths or speed-round timers.
  • Debugging: rough timing of code paths during manual testing.
  • Public speaking practice: hit “lap” at major sections to see how long each took.

Differences from the Pomodoro timer

The Pomodoro timer counts down to a fixed work/break interval. The stopwatch counts up indefinitely. They serve different purposes:

  • Use Pomodoro when you want a forcing function, “I will work for 25 minutes then break.”
  • Use stopwatch when you want to know how long something actually took, “let me see how long this round of revisions takes.”

Lap mechanics

Hitting “Lap” while running creates a new lap with the current elapsed time. The lap list shows:

  • Lap number (counted from the start)
  • Cumulative elapsed time at that lap
  • Delta from the previous lap (how long this segment took)

Deltas are useful for spotting whether you’re getting faster or slower across iterations. For sprint intervals, even-spaced deltas mean you’re holding pace; growing deltas mean you’re fading.

Resume after stop

Stopping the stopwatch pauses the display but preserves the elapsed time. Hitting Start again resumes from where you left off. This is intentional, most workouts and cooking tasks have natural pauses.

To start fresh from zero, hit Reset. Reset clears both the running time and the lap list.

Frequently asked questions

Does the timer keep running if I close the tab? No. The stopwatch is purely client-side, and there’s no backend persistence. Closing the tab loses the running time. For long-duration tracking that survives tab closes, use a phone app or a dedicated timer.

Why is my elapsed time slightly off? Browsers throttle background tab timers to save battery. If you switch tabs while the stopwatch is running, the visible time may pause briefly, but the underlying clock keeps accurate time using performance.now(). When you return, the display catches up.

Can I export laps to a CSV? Not directly. Copy the visible lap list and paste into a spreadsheet, it’s plain text.

Why centisecond and not millisecond display? Three decimal places (milliseconds) is hard to read at a glance, the digits change faster than your eye can lock on. Centiseconds (two decimals) updates 100 times per second, which is the upper bound of human readability.

stopwatch timer lap precision browser

Related Tools

More in Data Tools