Сброс моей "С момента последней аварии программы с кнопкой" - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть небольшой код для подсчета с определенной даты.Как сделать так, чтобы при нажатии на кнопку на моей веб-странице она сбрасывалась до 0, а затем продолжала считать?

У меня есть следующий код js:

const second = 1000,
  minute = second * 60,
  hour = minute * 60,
  day = hour * 24;


let countUp = new Date('February 07, 2019 16:24:00').getTime(),
x = setInterval(function() {

  let now = new Date().getTime(),
      distance = now - countUp;

    document.getElementById('days').innerText = Math.floor(distance / (day)),
    document.getElementById('hours').innerText = Math.floor((distance % (day)) / (hour)),
    document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)),
    document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / (second));


}, second)

Заранее спасибо!

1 Ответ

0 голосов
/ 07 февраля 2019

Вам необходимо сохранить ручку таймера интервала и отменить ее при нажатии кнопки.Преобразуйте код таймера в функцию, которая вместо этого создает средство проверки интервалов:

function createNewTimer(date){
  return setInterval(function() {

    let now = date,
        distance = now - countUp;

      document.getElementById('days').innerText = Math.floor(distance / (day)),
      document.getElementById('hours').innerText = Math.floor((distance % (day)) / (hour)),
      document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)),
      document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / (second));


  }, second);
}

var timerId = createNewTimer(new Date('February 07, 2019 16:24:00').getTime());

var element = // select your element
element.addEventListener('click', function() { 
  clearInterval(timerId);
  timerId = createNewTimer(new Date().getTime())
}, false);

Это иллюстрирует основную идею о том, как сбросить таймер и добавить изменчивость к дате начала времени

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...