Dataczwartek, 13 sierpnia 2026 Czas18:15:18
← Popularne skrypty

Skrypt 7: Odliczanie czasu do wskazanej daty

Trudny / egzaminacyjny

Teoria

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.