Все функции надо вызывать циклически.
Т.е вставить все вызовы туда, где отсчитываются секунды
И то, что должно меняться туда же
function sec() {
if(dot.style.color == "black") {
dot.style.color = "white";
}
else {
dot.style.color = "black";
}
// тут вызовы функций в необходимой последовательности
openCloseStatys();
remainsFun();
......
hoursInput.innerHTML = `${hours}`;
minutesInput.innerHTML = `${minutes}`;
remains.innerHTML = `${openClose}${rezult_1} ча${endingHour} ${rezult_2} минут${endingMinut}`;
}
Вот этого
function remainsFun(){
if(hours>=20){
openClose = open;
}
else if(hours>=0&&hours<=8){
openClose = open;
}
else if(hours>=8&&hours<=20){
openClose = close;
}
}
remainsFun();
function timeHours(){
if(hours>=20&&hours<=23){
rezult_1 = hoursOpen - hours + 24;
}
else if(hours>=0&&hours<=8){
rezult_1 = hoursOpen - hours;
}
else if(hours>=8&&hours<=20){
rezult_1 = hoursClose - hours;
}
}
timeHours();
быть не должно. Зачем вызывать функцию сразу после ее определения?