Stopwatch Timer

Measure time to the millisecond. Record laps, see each split next to the running total, with the fastest and slowest splits highlighted.

All calculations happen locally in your browser. Nothing leaves your device.

00:00.000
Laps
Press Start and hit Lap to record your splits.

How It Works

Most web stopwatches tick off the system clock in whole-second steps, so their last digit always looks approximate. This one anchors every reading to the browser's high-resolution clock and simply formats the exact elapsed milliseconds — so the digits you see are the time you actually measured, not a rounded-off estimate.

High-resolution timing
When you press Start, the tool snapshots performance.now() and computes elapsed time as the difference between that snapshot and the current clock reading. The display refreshes on a 100ms interval, but the value shown is always recomputed from the real clock, so a busy page can never make the timer drift.
Pause without losing accuracy
Pausing stores the exact elapsed milliseconds and freezes the display. Resume by pressing Start again — the clock continues from the frozen value, and laps can still be recorded while paused to mark the exact stopping point.
Laps and splits
Every Lap press captures the current total. Each row shows the split (time since the previous lap) and the cumulative total. The fastest and slowest splits are highlighted so you can spot your best and worst effort at a glance — handy for reps, sprints, or time trials.

Frequently Asked Questions

Why does the stopwatch show millisecond precision?

The timer is driven by the browser's high-resolution clock (performance.now()) instead of the second-granularity system clock. That means each reading is accurate to well under a millisecond, and the 100ms render interval only controls how often the display refreshes — it never affects the measured time itself.

How do laps (splits) work?

Each time you press Lap while the stopwatch is running, the current total is recorded. The list shows the split — the time elapsed since the previous lap — alongside the cumulative total for that lap. The fastest and slowest splits are highlighted automatically.

Can I pause and then keep timing?

Yes. Pause freezes the elapsed time and Lap records it at that exact moment; pressing Start again resumes counting from the frozen value with full millisecond accuracy. Reset stops everything, clears the laps and restarts from zero.

Does the time keep counting if I navigate away?

No. The stopwatch is purely client-side: the running state lives only in this page's JavaScript. Closing or reloading the tab stops the timer and clears the lap list. Reopen the tool to start a fresh run.

What does the MM:SS.mmm display mean?

MM is minutes, SS is seconds and .mmm is the millisecond fraction, for example 01:02.347 is one minute, two seconds and 347 milliseconds. Minutes are not capped, so the display simply grows as long as you run the timer.