JavaScript

Таймер зворотного відліку на JavaScript

Last updated: 02.04.2026
Views: 134

Таймери зворотного відліку зазвичай використовуються на веб-сайтах, що рекламують товари, послуги або спеціальні пропозиції. Ви часто можете побачити їх на цільових сторінках або в інтернет-магазинах, де вони використовуються для виділення обмежених за часом пропозицій та створення відчуття терміновості. Показуючи, скільки часу залишилося до певної події або терміну, такі таймери можуть допомогти підвищити залученість користувачів та заохотити їх до швидшого прийняття рішень.

В одній з попередніх статей ми розглянули, як створити простий годинник на JavaScript. У цьому прикладі ми зробимо крок далі та створимо більш практичне рішення — таймер зворотного відліку, який відображає час, що залишився до запланованої дати. Таймер показуватиме дні, години, хвилини та секунди, динамічно оновлюючись у режимі реального часу.

Робота з таймерами зворотного відліку — це гарний спосіб краще зрозуміти, як працює об’єкт Date на JavaScript, зокрема як обчислювати різницю в часі та форматувати значення для відображення. Він також знайомить із поширеними завданнями фронтенду, такими як оновлення інтерфейсу користувача через регулярні проміжки часу та обробка граничних випадків, коли зворотний відлік досягає нуля.

У цьому прикладі ми реалізуємо таймер зворотного відліку, використовуючи простий JavaScript, без використання сторонніх бібліотек. Такий підхід робить рішення легким та спрощує його налаштування або інтеграцію в різні типи проектів.

JavaScript

(() => {
    // set the final date "December 30, 2028 18:30"
    const compareDate = new Date(2028, 11, 30, 18, 30).getTime();

    const timer = setInterval(() => {
        timeBetweenDates(compareDate);
    }, 1000);

    function timeBetweenDates(toDate) {

        const difference = toDate - Date.now();

        // if the date has passed, the timer stops
        if (difference <= 0) {

            clearInterval(timer);

        } else {

            let seconds = Math.floor(difference / 1000),
                minutes = Math.floor(seconds / 60),
                hours = Math.floor(minutes / 60),
                days = Math.floor(hours / 24);

            hours %= 24;
            minutes %= 60;
            seconds %= 60;

            if (days < 10) days = '0' + days;
            if (hours < 10) hours = '0' + hours;
            if (minutes < 10) minutes = '0' + minutes;
            if (seconds < 10) seconds = '0' + seconds;

            document.getElementById('days').innerHTML = days;
            document.getElementById('hours').innerHTML = hours;
            document.getElementById('minutes').innerHTML = minutes;
            document.getElementById('seconds').innerHTML = seconds;

        }
    }
})();

HTML

<div class="timer">
    <div class="timer-el">
        <div class="timer-el__name">Days</div>
        <div id="days"></div>
    </div>
    <div class="timer-el">
        <div class="timer-el__name">Hours</div>
        <div id="hours"></div>
    </div>
    <div class="timer-el">
        <div class="timer-el__name">Minutes</div>
        <div id="minutes"></div>
    </div>
    <div class="timer-el">
        <div class="timer-el__name">Seconds</div>
        <div id="seconds"></div>
    </div>
</div>

HTML-код може бути іншим, все залежить від вашої задачі. Приклад із мінімальними стилями CSS того, як працює таймер зворотного відліку, можна побачити на Codepen: https ://codepen.io/igorrybalko/pen/zxOdPvZ

Нагадаю, що місяці в JavaScript починаються з нуля.

// December 30, 2027
new Date(2027, 11, 30)
author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

Схожі записи:

  • Способи створення об’єктів у JavaScript
    Існує декілька способів створення об’єктів у JavaScript. Тип даних Object відіграє вирішальну роль у JS. Об’єкт — це невпорядкований набір пар ключ-значення. Може містити...
  • Компонент акордеона Vue
    Простий та легкий плагін компонента акордеон для Vue 3. Підтримує як глобальну реєстрацію плагінів, так і локальне використання компонентів. Написано на TypeScript. Компо...
  • Плавне прокручування (скроллінг) до якоря за допомогою JavaScript
    Плавне прокручування (скроллінг) – це популярна функція веб-дизайну, яка покращує взаємодію користувача, забезпечуючи плавну навігацію між розділами веб-сторінки. Замість...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Blue Captcha Image
Refresh

*