@River0051

Как таймеру обратного отсчета проверять наступила ли дата?

Столкнулся с проблемой, если дата уже давно наступила в таймере, то при загрузки страницы или перезагрузки ее, таймер высчитывает сколько прошло времени и собсна не считает в реальном времени, то что он не считает, так и должно быть, но как сделать, чтобы если дата наступила выводили нули или слово ?

Вот скрипт

Заранее благодарен
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
AlexMcArrow
@AlexMcArrow
Люблю РНР, да я такой!
function getTimeRemaining(endtime) {
  var t = Date.parse(endtime) - Date.parse(new Date());
  if (t > 0) {
  var seconds = Math.floor((t / 1000) % 60);
  var minutes = Math.floor((t / 1000 / 60) % 60);
  var hours = Math.floor(t / (1000 * 60 * 60));
  return {
    'total': t,
    'hours': hours,
    'minutes': minutes,
    'seconds': seconds
  };
  } else {
    return {
    'total': 0,
    'hours': 0,
    'minutes': 0,
    'seconds': 0
  };
  }
}

function initializeClock(id, endtime) {
  var clock = document.getElementById(id);
  var hoursSpan = clock.querySelector('.hours');
  var minutesSpan = clock.querySelector('.minutes');
  var secondsSpan = clock.querySelector('.seconds');

  function updateClock() {
    var t = getTimeRemaining(endtime);

    hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
    minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
    secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);

    if (t.total <= 0) {
      clearInterval(timeinterval);
    }
  }

  updateClock();
  var timeinterval = setInterval(updateClock, 1000);
  
}
// Даты респов
var padalshik = '1 16 2018 05:20:00 GMT+0300';
// Черная пантера
var black_panter = padalshik;
// Тавр
var tavrtimeInMinutes = 20;
var currentTime = Date.parse(padalshik);
var tavr = new Date(currentTime + tavrtimeInMinutes*60*1000);
// Рыцарь смерти
var kdtimeInMinutes = 40;
var currentTime = Date.parse(padalshik);
var knight_dead = new Date(currentTime + kdtimeInMinutes*60*1000);
// ========= end pit stack ================

// padalshik start
initializeClock('padalshik', padalshik);
initializeClock('black_panter', black_panter);
initializeClock('tavr', tavr);
initializeClock('knight_dead', knight_dead);
// padalshik end


Попробуйте так.
Проверяем t если больше 0 - то работаем с данными, в противном случаи - делаем что нужно (у меня показывает нули)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@River0051 Автор вопроса
Спасибо, все отлично работает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы