Обратный отсчет в JavaScript: 3 метода создания таймера на 1 минуту

Чтобы создать обратный отсчет JavaScript на 1 минуту, вы можете использовать несколько методов. Вот несколько примеров:

  1. Метод 1: setTimeout

    function countdown(minutes) {
    var seconds = 60;
    var mins = minutes;
    function tick() {
    var counter = document.getElementById("timer");
    var currentMinutes = mins - 1;
    seconds--;
    counter.innerHTML =
      currentMinutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
    if (seconds > 0) {
      setTimeout(tick, 1000);
    } else {
      if (mins > 1) {
        setTimeout(function () {
          countdown(mins - 1);
        }, 1000);
      }
    }
    }
    tick();
    }
    countdown(1);
  2. Метод 2: setInterval

    function countdown(minutes) {
    var seconds = 60;
    var mins = minutes;
    var interval = setInterval(function () {
    var counter = document.getElementById("timer");
    var currentMinutes = mins - 1;
    seconds--;
    counter.innerHTML =
      currentMinutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
    if (seconds === 0) {
      if (mins === 1) {
        clearInterval(interval);
      } else {
        mins--;
        seconds = 60;
      }
    }
    }, 1000);
    }
    countdown(1);
  3. Метод 3: объект даты

    function countdown(minutes) {
    var endTime = new Date();
    endTime.setMinutes(endTime.getMinutes() + minutes);
    var interval = setInterval(function () {
    var now = new Date();
    var remainingTime = Math.max(0, endTime - now);
    var minutes = Math.floor((remainingTime / 1000 / 60) % 60);
    var seconds = Math.floor((remainingTime / 1000) % 60);
    var counter = document.getElementById("timer");
    counter.innerHTML =
      minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
    if (remainingTime === 0) {
      clearInterval(interval);
    }
    }, 1000);
    }
    countdown(1);