JSFiddle - React, Tailwind, and code Playground
HTML
<div id="countdown" ></div>
<div id="countdown1" ></div>
JavaScript
var d = [5,4,3,2,1,0,7,6,];
var today = new Date();
var MOSCOW_UTC_OFFSET=180;
var ONE_MINUTE_IN_MILLISECONDS=60*1000;
var currentUTCTime=today.getTime()+today.getTimezoneOffset()*ONE_MINUTE_IN_MILLISECONDS;
var timesZoneModifier=currentUTCTime+MOSCOW_UTC_OFFSET*ONE_MINUTE_IN_MILLISECONDS;
var currentMoscowTime=new Date(timesZoneModifier);
console.log(currentMoscowTime);
var end = new Date(today.getFullYear(),today.getMonth(),today.getDate()+ d[today.getDay()], 15, 00, 00);
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
function showRemaining() {
var now = new Date();
var distance = end - now;
if (distance < 0) {
document.getElementById("countdown").innerHTML = "Следующий синхрон через неделю.";;
return;
}
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
if (hours < 10) hours = '0' + hours;
var minutes = Math.floor((distance % _hour) / _minute);
if (minutes < 10) minutes = '0' + minutes;
var seconds = Math.floor((distance % _minute) / _second);
if (seconds < 10) seconds = '0' + seconds;
document.getElementById('countdown1').innerHTML = "До начала синхрона осталось. "+ days +" дн. "+ hours +":"+ minutes +":"+ seconds +"";
}
timer = setInterval(showRemaining, 1000);