Countdown Timer (live, days/hours/minutes/seconds)
Pick a target date and time and watch the countdown tick down by the second. Add an optional title to label the event. After the target passes, the same display shows time elapsed.
How it works
How the timer works
The countdown ticks once per second using setInterval. Each tick reads the current local time, subtracts it from your target, and breaks the difference into days, hours, minutes, and seconds. There's no server round-trip, so the countdown stays accurate even if your network drops — only the page itself needs to be loaded.
Time zones use whatever your browser thinks is 'local'. If you set the target to '12:00 today' and another person in a different time zone visits the page, the countdown will be different — both correct, but for their local 12:00.
Common use cases
Project deadlines (display the countdown on a meeting room screen), product launches (count down to a public release), travel (vacation, flight, train), exams and certifications, weddings and anniversaries, sports events. The optional title field lets you label the event so the page is self-explanatory.
After the target passes, the same display flips to 'time elapsed since' and continues counting up. This is useful when 'how long ago did X happen' is what you actually want — e.g., 'days since the last incident' for an SRE dashboard.
Why a countdown rather than a calendar reminder
Calendar reminders pop up once at the time of the event. A live countdown gives you a constant peripheral awareness — useful for goals you want to keep top-of-mind. Sports teams display them, software teams show them in war rooms, and marathoners pin them to their training screens.
If you want this to live on a public dashboard, bookmark the URL after setting the target. The state stays in the inputs; reloading the page resets it (no shared link yet, but the input fields are preserved within a session).
Frequently asked questions
›Is the countdown second-accurate?
Yes — the display updates once per second, and each update recomputes from the current clock, so accumulated drift can't happen.
›What time zone does it use?
Your browser's local time zone. The target you pick is interpreted in your local zone, not UTC.
›Does the countdown work offline?
Yes, once the page is loaded. No network connection is needed for the timer to keep ticking.
›Can I share a countdown with someone else?
Not yet via URL. We're working on encoded-state URLs so a link can carry the target and title; for now you can paste a screenshot or take a screen recording.
›What happens after the target passes?
The display switches to 'time elapsed since' and continues counting up. The numbers are positive but the label changes.
›Can I have multiple countdowns?
Open multiple tabs — each is independent. A built-in multi-event mode is on the roadmap.
›Will the timer keep running if I switch tabs?
Browsers throttle setInterval in background tabs. The countdown will catch up correctly when you return — recomputation is from the clock, not from accumulated ticks.
›Is the input data sent anywhere?
No. Everything stays in your browser.
Related tools
Last updated: