Date & Time Runs locally Ready to use Built-in examples No tracking

Countdown Calculator

Enter a target time to see exactly how many days, hours, minutes and seconds remain — or how long has passed.

An exam, a deadline, the end of the year, a release date — "how long is left?" is worth answering precisely: the target time goes in and the remaining days, hours, minutes and seconds come back broken down, while a moment already past reports how long ago it was. Unlike a running countdown clock, this is a static difference between two instants, which is what belongs in a notice, a poster or a schedule.

The useful detail is the reference time: instead of "now" you can enter a fixed current time yourself, so the same target gives the same result tomorrow and the day after — a screenshot shared with a group will not disagree with everyone else's simply because it was taken at a different moment. For a target in another time zone, such as an overseas release, convert it to local time first.

How to use

  1. Enter the target date and time.
  2. Optionally replace "now" with a fixed reference time so the result is reproducible.
  3. Read the remaining days, hours, minutes and seconds — or how long ago the moment passed.
  4. Copy the result; convert any other time zone to local time before entering it.

How it works

How to enter the target time

The target time format is YYYY-MM-DD HH:mm:ss; the time part is optional (defaults to 00:00:00).

Setting the base time

Leave "current time" blank to compute from the live time when the page opens; click "fill current time" to fix a base point so results are reproducible and screenshot-ready.

Reading the result

The result gives the four components days/hours/minutes/seconds plus total seconds; when the target has passed, the label becomes "elapsed."

Code example

JavaScript Splitting a millisecond difference into d/h/m/s

function countdown(target, now = Date.now()) {
  let ms = Math.abs(new Date(target) - now);
  const d = Math.floor(ms / 86400000); ms -= d * 86400000;
  const h = Math.floor(ms / 3600000);  ms -= h * 3600000;
  const m = Math.floor(ms / 60000);    ms -= m * 60000;
  const s = Math.floor(ms / 1000);
  return { d, h, m, s };
}

countdown("2027-01-01T00:00:00");   // time until New Year

Python timedelta splits it for you

from datetime import datetime

delta = datetime(2027, 1, 1) - datetime.now()
delta.days, delta.seconds   # days, seconds within the day

# Hours and minutes come from splitting seconds further:
h, rem = divmod(delta.seconds, 3600)
m, s = divmod(rem, 60)

FAQ

How does this differ from the date calculator?

The date calculator gives the number of whole days between two dates; this counts down to an exact hour/minute/second. Use this for exams, flash sales and other second-precision scenarios.

Does it auto-refresh?

No. With "current time" blank, it uses the time at page load; clicking calculate recomputes from that click's live time. For a moving countdown, fix the base point to observe the difference.

What's the maximum time span?

100 years; beyond that it warns "span exceeds 100 years." Years accept 1-9999.

How does the countdown compute remaining days?

It subtracts the current time from the target to get a millisecond difference, converted into days, hours, minutes and seconds. When truncating days, mind whether the start day counts: "30 days left" in an exam countdown usually excludes the start day.

How do I count down to New Year or Spring Festival?

For New Year, set the target to that year's Dec 31 24:00 (i.e. Jan 1 00:00 next year); Spring Festival is a lunar holiday whose Gregorian date varies yearly, so look up that year's date first. This tool computes by the exact date entered.

What is a countdown good for?

Common uses: exam and sign-up deadlines, project delivery dates, product launches and campaign go-lives, New Year and anniversaries, membership or discount expiry reminders. Breaking a big goal into "days remaining" makes progress clearer.

Why don't the countdown numbers tick?

Live refresh relies on browser timers, and a backgrounded page lowers or pauses them to save power, resuming only when foregrounded. Fill in a fixed "current time" for a reproducible result, or refresh the page to re-fetch the current time.