Таймер обратного отсчета Javascript на основе часов (работает в Unbounce)

1

Мне нужен таймер обратного отсчета javascript для работы на основе часов. Например, если это 5'o часов, тогда часы должны сбрасываться с одного часа. Когда это будет 6 часов, он должен снова перезагрузиться, и отсчет начнется.

Как на этом сайте → https://phorge.com.au/the-dental-edge-webinar

Я хотел бы использовать следующую JS. Так что было бы здорово, если бы его можно было изменить.

<script>
var startTime = 59.99; //in Minutes
var doneClass = "done"; //optional styling applied to text when timer is done

function startTimer(duration, display) {
  var timer = duration, minutes, seconds;
  var intervalLoop = setInterval(function () {
    minutes = parseInt(timer / 60, 10)
    seconds = parseInt(timer % 60, 10);
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;
    display.textContent = minutes + ":" + seconds;
    if (--timer < 0) {
      document.querySelector("#timer").classList.add(doneClass);
      clearInterval(intervalLoop);
     }
   }, 1000);
}

window.onload = function () {
  var setMinutes = 60 * startTime,
  display = document.querySelector("#timer");
  startTimer(setMinutes, display);
};
/**
    * Do not remove this section; it allows our team to troubleshoot and track feature adoption. 
    * TS:0002-03-069
*/
</script>
Теги:

1 ответ

2

Просто получите текущее время и вычитайте минуты и секунды с вашего startTime. Поскольку это таймер обратного отсчета в час, вам все равно, какой час это, сколько минут и секунд осталось в нем.

var startTime = 59.99; //in Minutes
var doneClass = "done"; //optional styling applied to text when timer is done

function startTimer(duration, display) {
  var timer = duration,
    minutes, seconds;
  var intervalLoop = setInterval(function() {
    minutes = parseInt(timer / 60, 10)
    seconds = parseInt(timer % 60, 10);
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;
    display.textContent = minutes + ":" + seconds;
    if (--timer < 0) {
      document.querySelector("#timer").classList.add(doneClass);
      clearInterval(intervalLoop);
    }
  }, 1000);
}

window.onload = function() {
  var now = new Date();
  var hour = now.getHours();

  if (hour > 12) {
    hour = hour - 11 + " PM"
  } else {
    hour = hour + 1 + " AM"
  }

  document.getElementById("hour").textContent = "Until " + hour;

  var setMinutes = 60 * (startTime - now.getMinutes() - (now.getSeconds() / 100)),
    display = document.querySelector("#timer");

  startTimer(setMinutes, display);
};
<span id="timer"></span><br/>
<span id="hour"></span>
  • 0
    Вы действительно получаете это, и это работает теперь. Спасибо тебе большое за это. Можете ли вы сделать мне одолжение, чтобы включить час? Так что, когда в секунду будет 7 часов вечера, он останется равным 01, а затем изменится на 00?
  • 0
    @SahibjotSingh для этого просто измените startTime на 60 я думаю.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню