Stopwatch & Countdown Timer

Precise online stopwatch with lap times and a countdown timer with alarm — all running in your browser, even in a background tab.

00:00.0

How to Use

1

Switch Between Stopwatch and Timer

Click the "Stopwatch" or "Countdown Timer" tab at the top to switch modes. Each mode maintains its own state independently.

2

Using the Stopwatch

Click Start to begin counting. Hit Lap to record a split time — lap times appear in a scrollable list below. Click Pause to freeze the display, then Resume to continue. Reset clears everything.

3

Using the Countdown Timer

Enter hours, minutes, and seconds in the input fields. Click Start — the display switches to countdown mode. The timer turns red and blinks in the last 10 seconds.

4

Alarm on Finish

When the countdown reaches zero, a short alarm sound plays (three beeps generated with the Web Audio API) and a "Time's Up!" banner appears. Click Reset to set a new time.

Frequently Asked Questions

Yes. Both the stopwatch and countdown timer use Date.now() to measure elapsed real-world time rather than counting animation frames. This means the timer stays accurate even when the browser throttles the tab in the background. The display updates correctly when you switch back.

There is no limit on the number of laps. All lap entries are stored in memory and displayed in a scrollable list. Each lap shows the total elapsed time and the split time since the previous lap.

Some browsers and mobile devices block audio that starts without a direct user interaction (a security policy called autoplay restrictions). If you don't hear the alarm, try tapping the Start button yourself — any prior interaction with the page is usually sufficient to allow audio. The "Time's Up!" visual banner always appears regardless of audio support.

No. The timer state is held in JavaScript memory only. Refreshing or closing the page will reset everything. If you need to preserve a time, note it down or copy the value from the display before navigating away.

Related Utility Tools