JavaScript Countdown Timer
A countdown shows the time left until a date, such as a sale end or an event. We use setInterval() to update it every second.
HTML and JavaScript
<p id="countdown"></p>
<script>
const target = new Date("2030-01-01T00:00:00").getTime();
const el = document.getElementById("countdown");
const timer = setInterval(() => {
const diff = target - Date.now();
if (diff <= 0) {
clearInterval(timer);
el.textContent = "Time is over!";
return;
}
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
const hours = Math.floor((diff / (1000 * 60 * 60)) % 24);
const minutes = Math.floor((diff / (1000 * 60)) % 60);
const seconds = Math.floor((diff / 1000) % 60);
el.textContent = `${days}d ${hours}h ${minutes}m ${seconds}s`;
}, 1000);
</script>
Output in the browser (the numbers change every second; this is one example):
Output in the browser
1234d 5h 42m 17s
How it works
target - Date.now()is the time left in milliseconds.- We divide by 1000 (seconds), 60 (minutes), 60 (hours) and 24 (days), and use
%to keep only the part that belongs to each unit. - When the time is over,
clearInterval()stops the timer.
Related: JavaScript Date and Callbacks and Promises.
Learn more about the similar topics:
| Tutorials |
|---|
| No Content Found. |
| Exercises & Assignments |
|---|
| No Content Found. |
| Interview Questions & Answers |
|---|
| No Content Found. |