Online Stopwatch (With Laps)

A precise stopwatch with lap timing, running in your browser tab — start, split, pause and reset with one click, no app needed.

907 views

00:00.00

A Stopwatch That Just Works

Press start and the clock runs to the hundredth of a second; press lap at any point to record a split without stopping the count, and each lap shows both its own duration and the running total. Pause and resume freely, or reset to zero whenever you're ready to start a new session.

There's no app to install and nothing to configure — open the page, press start, and the timer runs in the tab exactly as long as you need it to, whether that's a 30-second interval or a multi-hour session. Every lap you record stays visible in a scrollable list so you can compare splits at a glance instead of jotting times down separately. The interface works the same on a phone as it does on a desktop, so it holds up equally well clipped to a treadmill, propped on a kitchen counter, or open on a laptop during a rehearsal.

How the Timing Works

Browsers actually expose two different clocks to JavaScript: Date.now(), which follows the system clock and can jump forward or backward whenever it re-syncs with an NTP time server, and performance.now(), a monotonic clock that only ever moves forward and measures elapsed time since the page loaded, at much finer resolution. This stopwatch uses performance.now(), so a lap stays accurate even if your computer's clock is adjusted mid-session — something a naive Date-based timer would get visibly wrong. The display itself updates via requestAnimationFrame rather than a fixed interval like setInterval, which keeps the numbers rendering smoothly in sync with your screen's refresh rate instead of stuttering or drifting over a long run. That distinction is invisible in everyday use, but it's the reason a browser-based stopwatch can be just as trustworthy as a dedicated hardware timer for anything short of laboratory-grade measurement.

  • Workouts and interval training — record each round as a lap
  • Cooking — time multiple steps without losing track of the overall clock
  • Presentation and speech rehearsal — track section-by-section timing
  • Any task with distinct phases you want to compare side by side afterward

Frequently Asked Questions

Does it stay accurate if I switch tabs?

Yes — the display uses the elapsed wall-clock time via performance.now(), not a counter that increments on a fixed interval and can drift when the tab is backgrounded. Browsers do throttle background timers like setInterval to save power, but because this stopwatch always recalculates from the actual elapsed time rather than counting ticks, the final time is correct the moment you switch back.

How many laps can I record?

As many as you like in a single session — the list scrolls so it never runs out of room on screen. Laps are held only in the page's memory, not written anywhere permanent, so they clear automatically the moment you reset the stopwatch or reload the page.

Is my timing data saved anywhere?

No — it lives only in the page's memory for as long as the tab stays open and disappears the moment you leave, refresh, or close it. Nothing is sent to a server and nothing is stored locally, so there's no history to clear and no privacy concern around past sessions.

What's the difference between Date.now() and performance.now(), and why does it matter here?

Date.now() reflects the system clock, which can jump if it re-syncs with a time server, if the user changes their clock, or the device wakes from sleep — bad news for anything measuring an interval. performance.now() is monotonic: it never jumps backward and measures elapsed time since the page loaded at high resolution, which is why this tool uses it for every split and every running total instead.

Why doesn't the stopwatch show microsecond-level precision?

It could in theory — performance.now() was originally specified with sub-millisecond precision — but since 2018, browsers have deliberately capped its resolution, typically to around 0.1–1 millisecond, as a defense against Spectre/Meltdown-style timing attacks, where a sufficiently precise timer could be used to infer data from other processes. The hundredths-of-a-second display shown here sits comfortably within that safe margin, and for workouts, cooking, or rehearsals it is already far more precise than a human reaction time could ever need.

Comments

No comments yet — be the first to write one!

Similar Tools