Обратный отсчет на сайте своими руками
Создаем новый сайт – интернет-магазин новогодних елок. Клиентом была поставлена задача: сделать в том или ином виде обратный отчет, чтобы посетители сайта видели, сколько осталось времени до нового года.
Было принято решение не связываться с плагинами, а просто написать код, мини программу на JavaScript. И вот, что в результате получилось:
<!-- Блок для отображения таймера -->
<div id="newyear-countdown" <!-- это HTML-элемент, в него мы будем «вписывать» текст таймера -->
style="text-align:center; /* выравниваем текст по центру */
font-size:22px; /* размер шрифта */
font-weight:bold; /* жирный шрифт */
color:red; /* красный цвет текста */
margin-top:30px; /* отступ СВЕРХУ 30px */
margin-bottom:0;"> /* отступ СНИЗУ 0 — можно менять на свои значения */
</div> <!-- закрываем блок -->
<script> <!-- начинаем блок JavaScript-кода -->
document.addEventListener("DOMContentLoaded", function() { // ждём, пока страница загрузит HTML; потом запускаем нашу функцию
// Целевая дата: Новый год
var targetDate = new Date("Jan 1, 2026 00:00:00").getTime(); // создаём дату "1 янв 2026 00:00:00" и берём время в миллисекундах
function updateCountdown() { // объявляем функцию, которая будет пересчитывать и выводить таймер
var now = new Date().getTime(); // текущее время (в миллисекундах) на компьютере пользователя
var diff = targetDate - now; // сколько осталось до цели (разница в миллисекундах)
var countdownEl = document.getElementById("newyear-countdown"); // находим наш DIV по id, чтобы в него писать текст
if (diff <= 0) { // если время вышло (разница <= 0)
countdownEl.innerHTML = "🎉 С Новым годом!"; // показываем поздравление
clearInterval(timer); // останавливаем периодический пересчёт
return; // выходим из функции, дальше ничего не считаем
}
var days = Math.floor(diff / (1000 * 60 * 60 * 24)); // целые дни до даты (делим миллисекунды на мс в сутках)
var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / // часы: берём остаток от суток и делим на мс в часе
(1000 * 60 * 60));
var minutes = Math.floor((diff % (1000 * 60 * 60)) / // минуты: остаток от часа делим на мс в минуте
(1000 * 60));
var seconds = Math.floor((diff % (1000 * 60)) / 1000); // секунды: остаток от минуты делим на мс в секунде
countdownEl.innerHTML = // собираем строку и вставляем в наш DIV
"До нового года осталось: " + days + " дн " + hours + " ч " +
minutes + " м " + seconds + " с";
}
updateCountdown(); // сразу один раз посчитать и показать, не ждём секунду
var timer = setInterval(updateCountdown, 1000); // запускаем пересчёт каждые 1000 мс (каждую секунду)
});
</script> <!-- конец JavaScript -->Этот код можно вставить в то место, где вы хотите вывести счетчик обратного отсчета. Например, если в WordPress мы хотим его видеть на самом верху страницы, то его надо разместить в нужном месте в файле header.php


