Показать сообщение отдельно
  #4 (permalink)  
Старый 02.08.2014, 12:55
Аватар для TuxShot
Новичок на форуме
Отправить личное сообщение для TuxShot Посмотреть профиль Найти все сообщения от TuxShot
 
Регистрация: 01.12.2013
Сообщений: 9

Сообщение от ixth Посмотреть сообщение
Не поверишь! timestamp парсится на раз:

(function () {
	//var targetDate = Number($.cookie('timestamp')) * 1000;
	var targetDate = 1406975960000;

	setInterval(function () {
		updateTimer();
	}, 1000);

	function updateTimer() {
		var now = new Date();
		var diff = new Date(targetDate - now);
		updateTimerView(diff.getUTCHours(), diff.getUTCMinutes(), diff.getUTCSeconds());
	}

	function updateTimerView(hours, minutes, seconds) {
		// Тут делаешь анимацию
		console.log('%s:%s:%s', hours, minutes, seconds);
	}

}());

Немного переделал (добавил) код:
var targetDate = 1407055666;
var now = Math.round(new Date().getTime());
var diff = targetDate - now;
function UpdateTime() {
function pad(num) {
return num > 9 ? num : '0'+num;
};
days = Math.floor( diff / (1000*60*60*24) ),
hours = Math.floor( diff / (1000*60*60) ),
mins = Math.floor( diff / (1000*60) ),
secs = Math.floor( diff / 1000 ),
hh = hours - days * 24,
mm = mins - hours * 60,
ss = secs - mins * 60;
displaytime = pad(hh) + ':' +  pad(mm) + ':' + pad(ss);
document.getElementById("countdown_time").innerHTML = displaytime;
diff -= 1000;
}
setInterval(UpdateTime, 1000);
document.write(targetDate+' - '+now+' = '+diff); //debug вывод какие значения попадают


Но проблема в том, что постоянно таймер стартует не с 23:59:59, а с 22:02:12.
Проблему я нашел в строчке debug.
Оказалась разность даты + 1 день и текущей даты равно отрицательному значению.

Функция добавления в cookie даты + 1 день такая:
strtotime("+1 day")


Но вот как исправить ошибку я что-то не пойму.

P.S. Только не говорите что в переменной
var now = Math.round(new Date().getTime());
я не поставил деление на 1000. Если я его ставлю таймер стартует вообще с одной минуты.
Ответить с цитированием