UtilitiesTools

Online Stopwatch

Start, stop, and record lap splits with millisecond, drift-free precision — right in your browser. No app, no signup, nothing leaves your device. Use the buttons or your keyboard: Spacebar to start/stop, L to lap, R to reset.

0:00.000

Keyboard: Space start/stop · L lap · R reset

🔒 Every timing runs in your browser and never leaves your device.

What is the Online Stopwatch?

This online stopwatch is a free, browser-based timer that counts up from zero with millisecond precision. Press start and it measures exactly how long something takes — a sprint interval, a chemistry reaction, a timed practice question — and it can record lap splits along the way without ever stopping the clock. There is nothing to install and no account to create: open the page and you are already timing.

How to use it

  1. Press the Start button (or tap the Spacebar) to begin counting from 00:00.000.
  2. While it runs, press Lap (or the L key) each time you want to mark a segment. Each lap is saved with its own split time and the running total.
  3. Press Stop (or Spacebar again) to pause. The reading freezes exactly where it is; press start again to resume from that point.
  4. Press Reset (or R) to clear the time and the lap list back to zero.

The whole thing lives on one screen, so you get your answer at a glance and move on.

The method behind it: why performance.now() instead of Date

A naive stopwatch counts time by adding up setInterval ticks — "another 10 milliseconds passed, another 10..." That approach drifts, because timers are not guaranteed to fire on schedule and the browser deliberately slows them down in background tabs. The error accumulates the longer you run.

This stopwatch avoids that entirely. It records a single start timestamp from performance.now() — a high-resolution clock that always moves forward and never jumps when the system clock changes — and on every frame it simply computes elapsed = now − start. Because the elapsed time is always derived from two fixed points rather than summed tick by tick, it cannot drift. Lap splits use the same math: each split is just the difference between two recorded totals, so the cumulative column always adds up exactly.

Examples

Common use cases

Why use this one

Most browser stopwatches stop at start/stop/reset. This one adds lap splits so you can break a session into segments without losing the running total, keyboard control (Spacebar to start/stop, L to lap, R to reset) so you never fumble for a button at the critical moment, and drift-free precision from performance.now() so long sessions stay accurate to the millisecond. It is deliberately minimal — the time is the whole page — runs 100% in your browser, requires no signup, and keeps every timing on your own device.

Frequently asked questions

How accurate is this online stopwatch?

It measures time with performance.now(), a high-resolution monotonic clock, so the elapsed time stays accurate to the millisecond and does not drift over long sessions the way a simple interval counter would.

How do I record laps or split times?

Press the Lap button or the L key while the stopwatch is running. Each lap records both the split (the time for that segment) and the cumulative total, so you can compare segments without ever stopping the clock.

Can I control the stopwatch with my keyboard?

Yes. Press Spacebar to start or stop, L to record a lap, and R to reset. Keeping your hands on the keyboard means you never fumble for a button at the exact moment you need to start or stop timing.

Does the stopwatch keep running if I switch tabs or it loses focus?

Yes. Because elapsed time is computed from a start timestamp rather than counted tick by tick, the displayed time is correct the moment you come back, even if the browser throttled the tab in the background.

Is my data sent anywhere, and do I need an account?

No on both counts. The stopwatch runs entirely in your browser with no signup and no tracking of your timings. Nothing about your session leaves your device.

Related tools