Online stopwatch

Start, stop, record laps and go full screen. Keeps accurate time when the tab is in the background. Runs in your browser; nothing is uploaded.

00:00.00

Lap 1: 00:00.00

Shortcuts: Space start/stop, L lap, R reset, F full screen

LapLap timeTotal (split)Note
Laps appear here. Press Lap or L while the stopwatch runs.

How to use the stopwatch

  1. Press Start (or the Space bar). Press it again to stop, and again to carry on from where you stopped.
  2. Press Lap (or L) each time a lap, round or task ends. Each row shows that lap's time and the total so far.
  3. Press Full screen (or F) to show large digits that can be read across a room. Press Esc or the button again to leave.
  4. Press Copy laps to copy a tab-separated list you can paste into a spreadsheet, email or chat.
  5. Press Reset (or R) to clear the time and laps. An Undo button appears for ten seconds in case you pressed it by mistake.

Keyboard shortcuts

KeyAction
SpaceStart or stop
LRecord a lap (while running)
RReset (while stopped or running)
FEnter or leave full screen
EscLeave full screen

How this stopwatch keeps accurate time

A simple web stopwatch adds 10 milliseconds every time a timer fires. That drifts, because browsers do not promise to run timers on time, and it breaks badly in the background: to save battery, browsers run timers in hidden tabs at most about once a second, and sometimes much less often. A stopwatch that counts ticks can lose minutes that way.

This stopwatch never counts ticks. When you press Start it records the exact moment from performance.now(), a monotonic clock: it only moves forward, at a steady rate, and is not changed when your computer syncs its clock or you change the time zone. Whenever the screen is drawn, the elapsed time is simply "now minus start", plus any time from earlier runs if you paused. The display is refreshed with the browser's animation timer, in step with your screen, and pauses while the tab is hidden; when you come back, the next frame shows the correct time straight away. Laps are timed the same way, at the moment you press the key, not when the screen next updates.

Two situations need more than that clock. If your computer goes to sleep, some browsers stop performance.now() while it sleeps, so the stopwatch also notes the ordinary system clock and, if that shows more time has passed than the steady clock by over two seconds, it trusts the system clock instead. (The one side effect: if someone moves the system clock forward by more than two seconds while the stopwatch runs, it cannot tell that apart from sleep and counts the jump.) And to survive a reload, the start time and laps are saved in your browser's local storage on this device. Nothing is sent to us. If your browser blocks storage (for example in some private windows) the stopwatch still works; it just starts fresh after a reload.

What "accurate" means here

Browsers deliberately round performance.now() a little, to between a few microseconds and a millisecond depending on the browser, to make some security attacks harder. The display shows hundredths of a second. Both are far finer than the delay between seeing something happen and pressing a key, so for timing people (races, speeches, workouts) the limit is the person pressing the button, as with any handheld stopwatch. For timing code, use your programming language's own timing tools.

Lap times and split times

The word "split" is used two ways. In running, a split usually means the total time at a checkpoint, while a lap time is the time for that one section. To avoid confusion the table shows both: Lap time is the time since the previous lap press, and Total (split) is the time since you started. Once you have two or more laps, the fastest is marked in green and the slowest in red, which is handy for spotting pace changes in intervals.

Tips and troubleshooting

Related tools

Planning a script? See how long it takes to read aloud with the words to minutes converter. Coordinating people in different places? The meeting planner lines up time zones, and the Unix timestamp converter turns machine timestamps into readable dates.

Frequently asked questions

Does the stopwatch keep running if I switch tabs? +

Yes. The stopwatch does not count ticks; it records the moment you pressed Start and works out the elapsed time from the clock whenever it is shown. Browsers slow down background tabs, but that only delays the display, not the timing. It even survives reloading the page or closing and reopening the tab.

How accurate is an online stopwatch? +

This one measures time with the browser's performance.now() clock, which runs at a steady rate and does not jump when the computer syncs its clock. Browsers round it slightly for security, to between a few microseconds and a millisecond. In practice the delay in pressing the key yourself is a far bigger source of error than the clock.

What is the difference between lap time and split time? +

A lap time is how long one lap took, from the previous lap press to this one. A split (or cumulative) time is the total time from the start to that press. This stopwatch shows both for every lap, and marks the fastest and slowest laps once you have recorded two or more.

Is there a keyboard shortcut to start and stop? +

Yes. Press Space to start or stop, L to record a lap, R to reset and F for full screen. Shortcuts are ignored while you are typing in a text box. If you reset by accident, press the Undo button that appears for a few seconds.

Can I use this stopwatch on my phone? +

Yes. The buttons are large enough to tap and the page works in mobile browsers. Some phones, including iPhones, do not let web pages use true full screen, so the Full screen button fills the browser window instead. Turn on Keep screen awake so the display does not dim while timing.

Does the stopwatch work while my computer is asleep? +

The page cannot run while the computer sleeps, but the time is not lost. When the computer wakes up, the stopwatch compares the system clock with the time it last saw and adds the time that passed, so a timer left running overnight shows the full elapsed time.

Related