Free Countdown Timer & Stopwatch

Set a countdown or run a stopwatch — stays accurate even if the tab is in the background.

00:05:00

Why countdown timers drift — and how this one avoids it

A surprising number of browser-based timers lose accuracy on long durations. The naive approach ticks a counter down by one every 1000 milliseconds using setInterval — but setInterval only guarantees a minimum delay, not an exact one. Each tick is a little late (garbage collection pauses, other tabs competing for CPU, background-tab throttling), and those small delays accumulate. A 25-minute Pomodoro timer built this way can finish several seconds late; a 2-hour timer can drift by a minute or more.

This timer avoids that by never counting down at all. When you hit Start, it records one fixed target: the exact moment the countdown should hit zero (Date.now() + duration). Every animation frame, it simply asks "how far away is that moment right now?" and displays the answer. There's no accumulating counter to drift — even if a background tab gets throttled and skips dozens of frames, the very next frame it does render shows the mathematically correct remaining time, not a time that's behind schedule.

Common uses

Frequently Asked Questions

Will the timer stay accurate if I switch tabs?

Yes. Rather than just counting down once a second, the timer compares the current time against the moment it started, so it stays accurate even if the browser throttles background tabs.

Does it play a sound when the countdown finishes?

It shows a clear "Time's up!" message and the display flashes. Browsers block audio from playing without a prior user interaction on the page, so keep the tab active near the end if you want to rely on it as an alarm.

Can I use both the timer and stopwatch at once?

Switching tabs resets whichever mode you're leaving — use one at a time. Reset explicitly before switching if you want a clean start.

What's the actual difference between a countdown timer and a stopwatch?

A countdown timer starts from a duration you set and counts down to zero, then stops and alerts you. A stopwatch starts at zero and counts up indefinitely until you stop it — useful when you don't know in advance how long something will take and want to measure it after the fact.

Can I set a timer for more than 24 hours?

Yes. The hours field has no upper limit — enter any number of hours, minutes, and seconds and they're added together into a single duration, so multi-day countdowns work fine.

Is my data sent anywhere?

No. Everything runs locally in your browser. Nothing is transmitted or stored.