Как остановить обратный отсчет?

Рейтинг: 2Ответов: 1Опубликовано: 21.05.2023

Есть счетчик обратного отсчета

   function countDown() {
      let standart = moment().tz("Europe/Moscow").format('YYYY-MM-DD HH:mm');
      let nowDay = moment(standart, 'YYYY-MM-DD HH:mm').format("YYYY-MM-DD HH:mm");
      var eventDay = moment('2023-05-20 18:00', 'YYYY-MM-DD HH:mm').format("YYYY-MM-DD HH:mm");
      let timers = moment(nowDay, 'YYYY-MM-DD HH:mm').countdown(eventDay, "YYYY-MM-DD HH:mm").toString();
      let countDw = guild.channels.cache.get("1105888140683448792");
      countDw.setName("Осталось: " + timers);
   }
   setInterval(countDown, 5 * 60 * 1000);

Когда счетчик доходит до конца, он начинает отсчет вперед. Т.е. в 18:01 он пишет, что осталась 1 минута, в 18:02 - осталось 2 минуты и т.д.

Как остановить отсчет?

Ответы

▲ 1

Можно сделать так:

function countDown() {
   let standart = moment().tz("Europe/Moscow").format('YYYY-MM-DD HH:mm');
   let nowDay = moment(standart, 'YYYY-MM-DD HH:mm').format("YYYY-MM-DD HH:mm");
   var eventDay = moment('2023-05-20 18:00', 'YYYY-MM-DD HH:mm').format("YYYY-MM-DD HH:mm");
   let timers = moment(nowDay, 'YYYY-MM-DD HH:mm').countdown(eventDay, "YYYY-MM-DD HH:mm").toString();
   let countDw = guild.channels.cache.get("1105888140683448792");
   countDw.setName("Осталось: " + timers);
}

let interval = setInterval(countDown, 5 * 60 * 1000);

Потом, когда вам нужно остановить отсчёт:

clearInterval(interval);

Вышеуказанное действие можно обернуть в функцию и выполнять где надо.