Показать сообщение отдельно
  #11 (permalink)  
Старый 26.09.2012, 20:57
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Уродливое, кривое решение через жопу. А главное - нерабочее.
Уже через 5-10 минут использования сайта появятся серьёзные расхождения в дате, т.к. setTimeout не гарантирует, что следующий запуск будет точно через секунду, он гарантирует только то что запуск будет не раньше чем через секунду. Малейшее подтормаживание и таймер сбит.

Делать надо как-то так было:
<b id="seconds">00:00:00</b>
<script type="text/javascript">
(function(){
	var difference = <?php echo time() ?>*1000 - new Date(), //сразу вычисляем разницу между серверным временем и временем на клиенте
		block = document.getElementById("seconds");
	(function redraw(){
		var date = new Date(); //получаем текущую дату клиента
		date.setTime( date.getTime() + difference); //прибавляем разницу
		block.innerHTML = date.toTimeString().substring(0,8); //форматируем и выводим
		setTimeout(redraw, 1000); //запускаем таймер на повтор функции
	}())
}())
</script>
__________________
29375, 35
Ответить с цитированием