2) таймер автовебинаров. Логика такая. Каждый день в 19:00 по московскому времени проводится автовебинар. Наша задача взять 19:00 за нулевую отметку и отсчитывать 24 часа до следущих 19:00. То есть в 18:00 по МСК таймер покажет 01:00:00, а в 18:32 таймер покажет 00:28:00
Есть такой код, только не учитывается другой часовой пояс у клиента:
<div id="timeleft"></div>
let out = document.getElementById('timeleft');
const fullday = 24*3600e3;
const tzdiff = new Date().getTimezoneOffset()*160e3;
let timer = () => {
let diff = fullday - (Date.now()-tzdiff) % fullday
if (diff <= 0) return clearInterval(i);
diff /= 1e3;
out.innerText = [
diff / 3600 % 24 |0,
diff / 60 % 60 |0,
diff / 1 % 60 |0
].map(d => d<10?'0'+d:d).join(':');
};
let i = setInterval(timer, 450);
timer();