Utility

Stopwatch

Measure elapsed time with millisecond precision. Track laps and intervals.

00:00:00

Stopwatch precision and why laps matter

A stopwatch measures elapsed time from a start point to now. JavaScript provides two ways: Date.now() returns milliseconds since 1970 (but it's affected by system clock adjustments), and performance.now() returns a high-resolution timestamp that only goes forward and never jumps if you adjust your system clock. This tool uses Date.now() for simplicity, so if your OS clock drifts or you manually adjust the time, the stopwatch will too. For athletic timing, professional software uses performance.now() to avoid this issue.

Lap timing separates the total elapsed time from split times—the duration of each individual lap. Usain Bolt ran 100 meters in 9.58 seconds at the 2009 Berlin World Championships, the world record. Olympic timing hardware measures to 0.001 seconds (1 millisecond), and photo-finish cameras can narrow it further. Most of us don't need that precision, but lap times are invaluable for pacing during long runs, assessing consistency across cycles, or spotting the moment fatigue sets in.

When to use a stopwatch vs. a timer

  • Stopwatch:You're measuring how long something takes. Running a mile, testing code latency, timing a speech, resting between gym sets, or how long you spent on a task.
  • Countdown timer:You're waiting for something to happen. A deadline, a cooking time, an exam duration, or a Pomodoro work interval.
  • Lap timing (stopwatch with splits):You're running laps or doing repeated actions and want to track the time for each lap. Swimming, running, cycling, or interval training all benefit from lap data.

Why athletic timing is brutal

Olympic sprinters are timed to 0.01 seconds (centiseconds). Photo-finish technology can narrow results to a few hundredths of a second, but human reaction time at the gun is 0.1 to 0.15 seconds, so the first few hundredths are noise. More interesting: runners who practice pacing can feel when they're on pace for a goal time. A 5K runner chasing sub-20 minutes needs to average 6:26 per km. A stopwatch with lap marks lets them hit splits (for a 5-km race: 1 km at 6:26, 2 km at 12:52, etc.) and adjust their effort in real-time. Top runners obsess over mile or kilometer splits.

For fitness, lap times show consistency—are your 10-rep sets always the same speed, or are you slowing down by the third set (a sign of fatigue)? That data, repeated over weeks, becomes a log of strength or endurance gains.

Frequently asked questions

Is the stopwatch accurate to 1/100th of a second?

It updates 10 times per second (every 100 ms), so the display precision is 1/100th of a second. The underlying time measurement in JavaScript is more precise (to at least 1 millisecond), but your phone or laptop screen can't update faster than 60 Hz, so anything faster than ~16 ms is invisible anyway.

Can I use this stopwatch for official race timing?

No. Official races use timing gates, electronic chips, and redundant hardware. A browser stopwatch is meant for personal training, casual timing, and fitness tracking. If an official or measured time matters (competition results, world records), use certified hardware.

Why does the stopwatch sometimes skip or stutter?

If your browser tab loses focus, the browser throttles timers to save CPU. When the tab regains focus, the timer jumps forward all at once. This is normal; it prevents timers from drifting. If you're actively using the tab, the stopwatch should run smoothly.

How many laps can I record?

As many as you want. Each lap is stored in memory. On older browsers with limited RAM, thousands of laps might eventually slow things down, but in practice you'll never hit that limit in a typical workout or test scenario.

What happens if I pause and resume?

The total elapsed time keeps running from where you paused. The next lap you record will show time since the last lap, not since you paused. This is intentional—your pause was a break, not part of the action.