Stopwatch & Countdown Timer
A stopwatch with laps and a countdown timer with alarm.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
Times things in both directions: a stopwatch that counts up with lap splits, and a countdown that counts down from a number of minutes and sounds an alarm at zero.
How to use it
- 1Pick Stopwatch or Countdown with the two buttons at the top.
- 2In Stopwatch, press Start, press Lap to record a split, and Reset to clear both the clock and the lap list.
- 3In Countdown, type a figure in Minutes and press Start; Stop pauses it and Reset returns the display to your set time.
Example
- Input
- Countdown, Minutes = 5
- Output
- 05:00.00 on the display before you start; at zero it turns red and pulses under a Time's up! line
The display is minutes:seconds.hundredths, and an hours field only appears once you pass 60 minutes — an hour and two minutes reads 1:02:03.45.
What happens to your data
Elapsed time is worked out by subtracting a stored start timestamp from Date.now() on every tick, rather than by counting ticks, so the reading stays true to the wall clock even if the browser throttles the interval. The alarm is generated on the spot by a Web Audio oscillator at 880 Hz for one second — no sound file is fetched — and if the audio context cannot be created the timer simply finishes silently. Laps live in an array in memory and are lost on reload; nothing is timed on our side.
Last updated August 2026
Reaching for a timer is usually a small emergency: the pasta is on, the call has already started, the exam section begins now. A browser tab is often the quickest thing to hand, because it is already open in front of you and there is nothing to install or unlock first.
This one counts in both directions. The stopwatch runs up in minutes, seconds and hundredths and keeps every lap you press, newest at the top; the countdown takes a number of minutes and sounds a one-second tone at zero, where the digits turn red and pulse and a Time's up! line appears under the buttons. Two buttons at the top switch between the two, and only one of them exists at a time — moving to the other mode throws away whatever the first was holding, so a stopwatch left running at 00:03.00 with a lap recorded comes back at 00:00.00 with an empty list.\n\nIt works as both: an online stopwatch and an online timer — counting down to zero when something has a fixed length, and a stopwatch online counting up when what you want is elapsed time. Timer online for the pasta, stopwatch for the lap \u2014 the difference is only which direction the numbers move, and which one you want is usually obvious the moment you have started the wrong one.
How it works
Toolvore works every reading out from your device's clock rather than counting its own ticks: the stopwatch stores the moment you started and subtracts it from the current time on each tick, and the countdown stores the moment it should end and subtracts the other way. Nothing drifts as a result, but the redraws can fall behind — the stopwatch asks for one every 33 milliseconds, about thirty times a second, the countdown every 100 milliseconds, and a browser slows those intervals right down in a tab you are not looking at. Hidden in Chrome here the ticks dropped to roughly one a second and the display sat about a second behind the truth, showing 00:04.60 when 5.61 seconds had passed and 00:09.60 at 10.61 seconds; the first tick that does get served puts the figure right, because it is computed rather than accumulated. The alarm cannot catch up like that, because it is fired by the tick that first finds the countdown at or past zero — a one-second tone at 880 Hz the page synthesises with Web Audio, so there is no sound file to fetch, and if the audio context cannot be created the timer finishes silently on the red digits alone.
Common use cases
- Timing a call, a wait on hold or a meeting that has overrun, without hunting for a phone
- Rehearsing a talk against its slot: Start at the first slide, Lap at each section, then subtract the laps to see where the time went
- Running a countdown for something cooking, proving or charging, with the tab left in front so the tone lands on time
- Timing several attempts at the same task and comparing them from the lap list afterwards
- Putting a countdown on a shared screen for an exam section, a workshop exercise or a break
Frequently asked questions
Does the stopwatch stay accurate if I switch to another tab?+
The figure does. Every tick works the elapsed time out from your device's clock, so time spent elsewhere is counted and nothing drifts. What suffers is the refresh: browsers slow the timers of a tab you are not looking at, so the digits can be showing a reading about a second old — that is what a hidden tab did here — and they correct themselves on the next tick that runs. It matters mainly because Lap records the figure that is on screen at the moment you press, so a lap pressed in a background tab is recorded slightly short.
Will the countdown alarm sound if I leave the tab in the background?+
It is fired by the same tick, so it is only as prompt as your browser lets that tick be. In a hidden tab measured here the tick was still running, about once a second instead of ten times a second, so a countdown finishing there is late by roughly that much rather than lost — but a browser is free to slow a background tab much further, or suspend it, and nothing can sound until the tick runs again. There is no notification and the tab title never changes, so the tone and the red digits are the only signals. Keep the tab in front if the alarm matters, and use your phone for anything you would be upset to miss.
Do the lap times show the total or the split?+
The total. Each Lap records the clock exactly as it stood when you pressed, newest at the top: a run measured here gave Lap 1 at 00:04.98 and Lap 2 at 00:12.04, so the second stretch took 7.06 seconds and you subtract to get it. There is no column that does that subtraction for you. The list keeps as many laps as you press and scrolls once it outgrows its box, and it goes when you press Reset or switch to the countdown.
Can I set a countdown of less than a minute?+
Yes. Minutes is the only field, so type a fraction of one: 0.5 gives 00:30.00, 0.25 gives 00:15.00, 0.1 gives 00:06.00. The arrows step in whole minutes, but a typed fraction is taken as it stands — even 0.05, which is below the field's own stated minimum, starts and runs as three seconds. Longer times work the same way: 90 reads 1:30:00.00, an hours field appearing once you reach an hour. An empty box, a zero or a negative is refused, and Start says which of those it was rather than doing nothing: a negative asks for a number above zero and suggests 0.5 for thirty seconds. The display clamps at 00:00.00 rather than rendering something like -3:00.00, which is not a time.
Can I pause a countdown and pick it up where it left off?+
Yes. Stop holds the figure on screen and labels it as paused; Start carries on from there. Measured: stopped at 01:57.39, and 1.3 seconds after Start it read 01:56.09. Editing the Minutes box while paused is treated as asking for a fresh countdown instead, which is the one case where starting over is what you meant. Reset clears the pause entirely and returns the display to whatever the box says.
Is anything about what I am timing recorded or sent anywhere?+
No. There is no account, no history and no server involved — the clock, the lap list and the tone are all produced inside the page, and once it has loaded the tool makes no network request at all; a measured run recorded none from the first click onwards. Nothing is stored either, which cuts both ways: reload the page, or switch between stopwatch and countdown, and you start from scratch.
Related tools
Word & Character Counter
Count words, characters, sentences, and paragraphs in your text.
Case Converter
Convert text between upper, lower, title, camel, snake, and kebab case.
Text Diff Checker
Compare two blocks of text and highlight the differences.
Slug Generator
Turn any text into a clean, URL-friendly slug.