Stopwatch
Free online stopwatch with laps: a big display to 1/100 second, fastest and slowest laps highlighted with your average lap, and it keeps running through a refresh or in a background tab. Copy results or download a CSV. No sign-up, nothing uploaded.
- Fastest & slowest laps marked
- Keeps running after a refresh
- Accurate to 1/100 second
- Copy or download CSV
Shortcuts: Space start/pause · L lap · R reset
Laps
Tap “Lap” while the stopwatch is running to record each lap here.
| Lap | Lap time | Split |
|---|
Timing runs in your browser and the state is stored only on this device, never uploaded. Switch tabs or refresh and the time stays accurate.
🔒 Everything is calculated in your browser. No data is sent to any server.
When to use it
- Running laps: Tap “Lap” every time around the track to see which lap slowed down and what your average lap is.
- Swimming and interval training: Record each length or set, then copy the results for your coach or training log.
- Speech and presentation practice: Tap Lap after each section to find the part that runs long before the real talk.
- Lab measurements and cooking: Time reactions or each step of a recipe, then download a CSV to sort and chart in Excel or Google Sheets.
How to use
- Tap “Start” to begin. The big display shows minutes, seconds and hundredths, and adds hours automatically after the first hour.
- Tap “Lap” at the end of each lap or section. The newest lap appears at the top of the list, with the fastest, slowest and average laps marked.
- Tap “Pause” to stop and “Resume” to carry on; “Reset” goes back to zero and asks first if you have laps. On a computer you can also use Space, L and R.
- When you're done, tap “Copy results” for a plain-text table or “Download CSV” to open it in Excel. To show everyone in the room, tap “Full screen”.
Worked example
Running 4 laps of a 400 m track and tapping “Lap” each time gives split times of 01:52.34, 03:47.91, 05:41.07 and 07:31.50, which work out to lap times of 01:52.34, 01:55.57, 01:53.16 and 01:50.43.
The list marks lap 4 (01:50.43) as “Fastest” and lap 2 (01:55.57) as “Slowest”. The average lap is 07:31.50 ÷ 4 = 112.875 seconds, shown as 01:52.87 after truncating to hundredths.
Pause at 08:15.42, tap “Resume” 3 minutes later, and after another 4 min 44.58 s the stopwatch reads 13:00.00: the 3 paused minutes are not counted.
The downloaded CSV has one row per lap; lap 2 reads “2,01:55.57,03:47.91,115.57,227.91”. The last two columns are plain seconds, so you can sum, sort or chart them in a spreadsheet right away.
Reading the results
- The big digits show the total time since you started, minus any pauses. “Current lap” underneath is the time since your last lap, so you can watch the lap in progress.
- “Lap time” is how long a single lap took, for comparing laps; “Split” is the total time at the moment you tapped Lap, for tracking overall progress.
- Fastest and slowest are marked once you have at least 2 laps, and not at all if every lap is identical. Average lap = the last split ÷ number of laps; the lap still running isn't included.
- All times are truncated to hundredths of a second (the stopwatch convention: time that hasn't fully passed isn't shown yet), so the lap times add up exactly to the final split.
How it works
- When you start, the current timestamp is saved; elapsed time is then always recalculated as previously accumulated time + (now − start timestamp). Nothing is added up every 0.01 s, so timer delays never pile up into drift.
- Pausing folds the running segment into the accumulated time; resuming records a fresh start timestamp, so paused time is never counted.
- The display updates with requestAnimationFrame at your screen's refresh rate. Browsers pause it in background tabs to save power, but the time is recomputed from timestamps the moment you return, so it's still right.
- Timestamps come from Date.now() (the system clock) rather than performance.now(), which restarts from 0 on reload and doesn't advance during sleep on some systems, making it impossible to resume after a refresh. The start time, accumulated time and laps are saved in this browser's localStorage.
Limitations
- Time is based on your device's system clock; changing the clock by hand or an automatic time sync during a run will shift the elapsed time.
- Pressing a button by hand always includes human reaction time. Use it for training and everyday timing; official race results should come from electronic timing.
- The state lives only in this browser, so it won't carry over to another device or survive clearing site data. Two tabs in the same browser share one stopwatch, and the latest action wins.
- Up to 999 laps. In private browsing or with site data blocked, the state may not be saved and a refresh resets it.
FAQ
Does the stopwatch stop if I switch tabs or lock my phone?
No. Elapsed time is calculated as “now − start time”, so the correct time appears as soon as you come back. In the background only the screen updates pause; the timing itself isn't affected.
Will I lose my time if I accidentally refresh or close the tab?
No. The start time, accumulated time and every lap are saved in this browser, so reopening this page picks up the same run with all its laps. Only “Reset” clears them. Private browsing may prevent saving.
How is this different from the countdown timer and Pomodoro timer?
A stopwatch counts up from zero to measure how long something takes, and records laps. The countdown timer counts down from a set time and sounds an alarm at zero, and the Pomodoro timer alternates focus and break sessions automatically. Use the stopwatch to measure time and the countdown timer when you want to be alerted.
Are there keyboard shortcuts?
Yes. On a computer, Space starts or pauses, L records a lap and R resets (with a confirmation if you have laps). They don't fire while you're typing in an input field.
How do I time each lap when running on a track?
Tap “Lap” every time you finish a lap. The list shows each lap time and split, and automatically marks your fastest, slowest and average laps, so you can see at a glance where your pace dropped.
Can I export lap times to Excel or Google Sheets?
Yes. “Download CSV” saves a table with one row per lap (lap, lap time, split, plus columns in plain seconds) that opens cleanly in Excel or Google Sheets. “Copy results” lets you paste a text table straight into a message or note.
Can I use it full screen as a race or classroom timer?
Yes. “Full screen” shows only the big timer, which works well on a projector or at the side of a track (Safari on iPhone doesn't support web page full screen, so turn your phone sideways instead). For official results, electronic timing is still recommended.
💬 Can't find an answer? Report a problem with this tool or send a suggestion