Здравствуйте. Сразу хочу просить прощения за "быдлокод", но я новичок в jQ. Есть таймер, который отсчитывает время до конца акции. На php показывает время правильно, в формате UTC. Есть код:
function timer() {
$('#sidebarblock .special-box').each(function () {
var $this = $(this);
var timer = $this.find('.timer');
var timestamp = timer.data('time-left-timestamp');
var time = new Date().getTime() / 1000;
var server_time = timer.data('server-curent-timestamp');
var seconds = '00';
var minutes = '00';
var hours = '00';
var days = '00';
// Вычисляем разницу времени между временем сервера и текущим по локали пользователя
var d = server_time - time;
// Вычисляем разницу времени между оставшимся временем и предыдущим полученным результатом
var q = timestamp - d;
if (q > 0) {
// Здесь мы получаем количество секунд, которое будет равно разнице в оставшееся время,
// вне зависимости от расположение пользователя
seconds = q-time;
seconds = Math.floor(seconds);
var utc = new Date(seconds*1000);
seconds = utc.getUTCSeconds();
minutes = utc.getUTCMinutes();
hours = utc.getUTCHours();
days = utc.getUTCDay();
if (seconds < 10) {
seconds = '0' + seconds;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
if (hours < 10) {
hours = '0' + hours;
}
}
// timer.find('.hours').html(hours).fadeIn(100);
// timer.find('.mins').html(minutes).fadeIn(100);
// timer.find('.secs').html(seconds).fadeIn(100);
console.log('секунды-'+seconds);
console.log('минуты-'+minutes);
console.log('часы-'+hours);
console.log('дни-'+days);
});
}
Он вызывается каждую секунду и применяется для 2 блоков. В первом блоке разница между php и js (код сверху) составляет 4 часа, но во втором блоке время показывается правильно (time_php === time_js). В чем загвоздка? Почему показывает только в одном блоке разницу, хотя в другом все нормально?
Спасибо за ответы.