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

Не надёжно это дюже.)
Но если вы доверяете времени на машине клиента то так:
<body>
<script>
(function setCounter(callback) {
	function output( ms ){
		function num(n, one, two, five) {
			if ((n = Math.abs(n) % 100) > 4 && n < 21 || (n %= 10) > 4 || n === 0 ) return five;
			if (n > 1) return two;
			return one;
		}

		var h = Math.floor( ms / (60*60*1000)),
			m = Math.floor((ms -= h*60*60*1000) / (60*1000) ),
			s = Math.floor((ms -= m*60*1000) / 1000 );
		
		var string = 'Остал' + num(h,'ся','ось','ось'); 
		if(h) string += ' ' + h + ' час' + num(h,'','а','ов');
		if(m) string += ' ' + m + ' минут' + num(m, 'а','ы','');
		if(s) string += ' ' + s + ' секунд' + num(s, 'а', 'ы', '');
		string += '.';
		
		return  string
	}

	var endCounter = /(?:^|; )endCounter=([^;]*)/.exec(document.cookie);
	if(endCounter) {
		endCounter = new Date(+endCounter[1]);
	} else {
		endCounter = new Date();
		endCounter.setTime(endCounter.getTime() + 24*60*60*1000);
		document.cookie = "endCounter=" + +endCounter + ';path=/;expires=' + endCounter.toUTCString();
	}
	
	(function counter(){
		var left = endCounter - new Date();
		if(left<=0) return setCounter();
		
		callback( output( endCounter - new Date() ) );
		
		setTimeout(counter, 1000)
	}())
}( function( str ){document.body.innerHTML = str} ))
</script>
</body>

//слава богу вовремя остановился.))
__________________
29375, 35

Последний раз редактировалось Aetae, 01.04.2013 в 03:20.
Ответить с цитированием