Показать сообщение отдельно
  #4 (permalink)  
Старый 17.10.2023, 16:38
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,756

Страница никак не может узнать, когда ее установили на сервер. Поэтому время установки страницы (начало отсчета) надо указать на самой странице.
Как то так
(тут для примера время увеличения счетчика установлено 1 мин. Для 6 часов закомментарить эту строку и раскомментарить следующую)
<body>
<span id="counter"></span>

<script>

// Указываем время установки страницы
const timeStart = new Date (2023, 09, 17, 16, 25);

const maxcount = 30_000;

//const timeTick = 24*60*60*1000; // 6 часов
const timeTick = 60*1000; // 1 мин

function nextCount () {
	let now = Date.now();  // Текущее время 
	const count = Math.floor((now - timeStart)/timeTick); // Количество прошедших интервалов
	
	document.getElementById('counter').textContent = count;
	
	const nextTick = timeStart.valueOf() + (count + 1) * timeTick; // Время следующего увеличения
	const dt = nextTick - now; // Сколько осталось до следующего увеличения
	if (count < maxcount) {
		setTimeout(nextCount, dt);
	}
}

nextCount();
</script>
</body>
Ответить с цитированием