1. Клик по кнопке определяет дату-время «сейчас», добавляет к ней 45 минут и сохраняет значение в localStorage.
const timerKey = 'myTimer';
function onButtonClick() {
const D = new Date();
D.setTime(45 * 6e4 + D.getTime()); // добавить 45 минут
localStorage.setItem(timerKey, D.getTime()); // сохранить на случай обновления страницы
startTimer(D.getTime()); // показывать обратный отсчёт
}
document.getElementById("id1").addEventListener("click", onButtonClick);
2. обратный отсчёт отображает разницу текущего времени и «времени Че»
function startTimer(ts) {
function showTime() {
const till = Math.max(0, che - Date.now()); // не меньше 0
// далее вывод этого времени в нужном месте
let seconds = Math.floor(till / 1000);
const hours = Math.floor(seconds / 3600);
seconds -= hours * 3600;
// ...
if (till > 0) setTimeout(showTime, 200);
}
const che = +ts; // чтобы число
showTime();
3. при загрузке страницы смотреть, если ли что в localStorage и запускать таймер, если есть
const savedChe = +localStorage.getItem(timerKey);
if (savedChe) startTimer(savedChe);