Задать вопрос

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

Всем доброе утро! Столкнулся с такой проблемой:
Для одного лендинга нужен счётчик времени. С ним я разобрался.
Но также нужно, чтобы данный скрипт не сбрасывался при обновлении страницы, то есть работал, так сказать, "от хостинга".
Вот код:
var span = document.getElementById("timecounterdiv");
var span2 = document.getElementById("asd2");
 
var CountdownTimer = function(endTime, onTick, onEnd){
  
  var loop = function(){
    var currentDate = new Date();
 
    var dif = new Date(endTime - currentDate + 1000);
    dif.setMinutes(dif.getMinutes() + currentDate.getTimezoneOffset());
 
    onTick(dif);
 
    if(currentDate > endTime){
      onEnd();
      return;
    }
 
    requestAnimationFrame(loop);
  };
  
  this.start = loop;
};
 
var updateElement = function(time){
  var addZero = function(value){
    return value < 10 ? "0" + value : value;
  };
  var seconds = addZero(time.getSeconds());
  var hours = addZero(time.getHours());
  var minutes = addZero(time.getMinutes());
  
  span.innerHTML = hours + ":" + minutes + ":" + seconds;
};
 
var onEndFirstTimer = function(){
  span2.innerText = "asdasdasdasd" // показываешь надпись
  
  
  setTimeout(function(){
    var endTime = new Date();
    endTime.setHours(endTime.getHours() + 6);
    endTime.setSeconds(endTime.getSeconds() + 00); // таймер на 1 час 55 минут
    var timer = new CountdownTimer(endTime, updateElement, onEndFirstTimer);
    timer.start();
    
    
    span2.innerText = "" // убираешь надпись
  }, 5 * 60 * 1000); // setTimeout на 5 минут
};
 
var endTime = new Date();
endTime.setHours(endTime.getHours() + 6); // таймер на два часа
var timer = new CountdownTimer(endTime, updateElement, onEndFirstTimer);
timer.start();


Буду рад, если поможете мне её решить.
  • Вопрос задан
  • 317 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@AleksRap
localstorage, как советовали выше не нужен. Просто напишите функцию которая будет возвращать разницу между нужной датой и текущим временем - это и будет ваше время до события
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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