Online Stopwatch
Start, pause and resume with centisecond precision; record laps and see the fastest and slowest flagged automatically.
Stopwatches are wanted for sports testing, timing an experiment or boiling an egg, and the requirement is always the same: start cleanly, read accurately. This one runs off the system's high-resolution clock and reads to a hundredth of a second, with lap timing, fastest and slowest markers, pause and resume, and a reset that zeroes everything. The one thing it cannot correct for is the human reaction time on the button.
On precision: the timing is based on the browser's high-resolution clock (performance.now, sub-millisecond) and displayed to a hundredth of a second, but pressing a button by hand carries a 100–200 ms reaction delay. Where accuracy matters — sports testing, laboratory records — trigger automatically and treat hand-timed results as a reference. Lap times record each interval, and the fastest and slowest are marked for comparison.
Did this tool solve your problem?
Submitting sends the tool name, your input and the current result to the server. Please do not include ID numbers, phone numbers or other private data.
AI assistant It answers using your current input and result
Asking again sends your current input and result to the server once more. Please do not include private data.
How to use
- Press start to begin; the reading runs to a hundredth of a second.
- Press lap to record an interval without stopping the clock.
- Pause and resume as needed; the fastest and slowest laps are marked.
- Reset to zero, and allow for human reaction time when comparing results.
How it works
Starting and pausing
Press "start" to run the watch, and again to "pause"; after pausing, "start" resumes from the pause point rather than resetting.
Using lap timing
Press "lap" while running to record the current cumulative time; in the list, "lap" is how long that lap took and "total" is the time since start.
The fastest/slowest marks
With 2 or more laps, the shortest lap is auto-marked "fastest" and the longest "slowest"; press "reset" to clear the timing and all laps.
Code example
JavaScript A high-precision stopwatch: accumulate deltas
let running = false, base = 0, acc = 0;
const now = () => performance.now();
function start() { base = now(); running = true; }
function pause() { if (running) { acc += now() - base; running = false; } }
function elapsed() { return acc + (running ? now() - base : 0); }
// Pause/resume only accumulates the delta; nothing relies on setInterval addition, so there is no throttling drift
// Laps: take an elapsed() snapshot per lap and subtract adjacent snapshots
Python Timing with perf_counter
from time import perf_counter
t0 = perf_counter()
# ... code under test ...
elapsed = perf_counter() - t0 # seconds (float, sub-millisecond precision)
# Always time with perf_counter (a monotonic clock),
# not time.time() — that one is shifted by system clock adjustments
FAQ
What's the precision?
The display is to 0.01 seconds (hundredths), accumulated internally in milliseconds; the page refreshes every 50 ms.
Does resuming after pause reset the timer?
No. Pausing just halts; "start" resumes from the pause point. Only "reset" zeroes it and clears the laps.
What's the difference between "lap" and "total"?
"Total" is the time from start to the moment of lapping; "lap" is this lap's time, equal to the current total minus the previous total. The first lap's lap and total are the same.
How are fastest/slowest marked?
With at least 2 laps, the row with the shortest lap time is marked "fastest" and the longest "slowest"; ties take the earlier one.
Does it stop if I switch tabs?
No. Timing is based on system-clock differences, so switching away and back still counts correctly without missing time.
How does it differ from a countdown timer?
A stopwatch counts up from 0 with no known end; a countdown timer counts down from a set duration to 0 and alerts.
Is the timing lost if I close the page?
Yes. Stopwatch state lives only on the current page and zeroes on refresh or close; for long timing, use the countdown timer and keep the page open.