Skrypt 7: Odliczanie czasu do wskazanej daty
Trudny / egzaminacyjnyTeoria
Wyświetla, ile czasu pozostało do konkretnej daty — klasyczny licznik promocji ("Oferta kończy się za...") czy odliczania do premiery.
Kod (JavaScript)
<p id="odliczanie"></p>
<script>
const dataKonca = new Date("2026-12-31T00:00:00").getTime();
setInterval(function () {
const teraz = new Date().getTime();
const pozostalo = dataKonca - teraz;
const dni = Math.floor(pozostalo / (1000 * 60 * 60 * 24));
const godziny = Math.floor((pozostalo % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minuty = Math.floor((pozostalo % (1000 * 60 * 60)) / (1000 * 60));
document.getElementById("odliczanie").textContent =
dni + " dni, " + godziny + " godz., " + minuty + " min.";
}, 60000); // aktualizuj co minutę
</script>
Komentarz i wyjaśnienie kodu
setInterval(funkcja, czas) działa jak setTimeout, ale POWTARZA wywołanie funkcji co podany czas, aż zostanie zatrzymane — tutaj co 60000 milisekund (minutę). new Date(...).getTime() zamienia datę na liczbę milisekund, dzięki czemu można łatwo obliczyć różnicę między dwiema datami przez zwykłe odejmowanie. Math.floor() zaokrągla w dół do pełnej liczby (np. pełnych dni).
Typowe błędy
Częsty błąd to zapomnienie o zatrzymaniu licznika po osiągnięciu daty docelowej — bez dodatkowego warunku licznik wyświetlałby ujemne wartości po minięciu terminu.