Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2021, 22:30
Новичок на форуме
Отправить личное сообщение для DenysV Посмотреть профиль Найти все сообщения от DenysV
 
Регистрация: 13.07.2021
Сообщений: 1

Таймер обратного отсчета
коллеги, нужна помощь... пишу таймер обратного отсчета... но завис на одной проблеме... помогите пожалуйста... как на странице сделать поле для ввода даты, с кнопкой сабмит, и что бы таймер реагировал на это так, что бы после ввода таймер реагировал и начинал отсчета от сейчас до даты введенной пользователем... код, какой имею на данный момент прикрепляю... помогите пожалуйста решить проблему...

HTML
<div class="timer">
<div class="timer__items">
<div class="timer__item timer__days">00</div>
<div class="timer__item timer__hours">00</div>
<div class="timer__item timer__minutes">00</div>
<div class="timer__item timer__seconds">00</div>
</div>
</div>

JS
document.addEventListener('DOMContentLoaded', function () {

const deadline = new Date(new Date().getFullYear(), new Date(), 01);

let timerId = null;

function declensionNum(num, words) {
return words[(num % 100 > 4 && num % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][(num % 10 < 5) ? num % 10 : 5]];
}

function countdownTimer() {
const diff = deadline - new Date();
if (diff <= 0) {
clearInterval(timerId);
}
const days = diff > 0 ? Math.floor(diff / 1000 / 60 / 60 / 24) : 0;
const hours = diff > 0 ? Math.floor(diff / 1000 / 60 / 60) % 24 : 0;
const minutes = diff > 0 ? Math.floor(diff / 1000 / 60) % 60 : 0;
const seconds = diff > 0 ? Math.floor(diff / 1000) % 60 : 0;
$days.textContent = days < 10 ? '0' + days : days;
$hours.textContent = hours < 10 ? '0' + hours : hours;
$minutes.textContent = minutes < 10 ? '0' + minutes : minutes;
$seconds.textContent = seconds < 10 ? '0' + seconds : seconds;
$days.dataset.title = declensionNum(days, ['день', 'дня', 'дней']);
$hours.dataset.title = declensionNum(hours, ['час', 'часа', 'часов']);
$minutes.dataset.title = declensionNum(minutes, ['минута', 'минуты', 'минут']);
$seconds.dataset.title = declensionNum(seconds, ['секунда', 'секунды', 'секунд']);
}

const $days = document.querySelector('.timer__days');
const $hours = document.querySelector('.timer__hours');
const $minutes = document.querySelector('.timer__minutes');
const $seconds = document.querySelector('.timer__seconds');

countdownTimer();

timerId = setInterval(countdownTimer, 1000);
});
Ответить с цитированием
  #2 (permalink)  
Старый 14.07.2021, 01:42
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

DenysV,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 14.07.2021, 12:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от DenysV
нужна помощь... пишу таймер обратного отсчета...
У нас тих таймеров вагон и маленькая тележка...
https://javascript.ru/forum/search.php?searchid=441059
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер обратного отсчета. Davias Events/DOM/Window 10 31.05.2017 03:01
Индивидуальный таймер обратного отсчета времени с редиректом pozitiv4ek Работа 2 11.12.2016 13:42
Таймер обратного отсчета Kity Элементы интерфейса 1 30.07.2016 11:56
Зацикленный таймер обратного отсчета levshaszr Элементы интерфейса 7 12.10.2014 23:20
Графический таймер обратного отсчета bobri4 Элементы интерфейса 4 24.08.2009 22:50