Обратный отсчет продолжает меняться

Верно, в основном у меня есть таймер обратного отсчета, который делает не совсем то, что написано на жестяной банке.

PHP выводит правильно, но как только он повторяется в Javascript, дата постоянно меняется.

Я загружу страницу, и она покажет одно расчетное время прибытия, и я обновлю ее, и она может перейти на час вперед или на несколько часов назад?

Мне просто нужен таймер обратного отсчета до 20 марта 2015 года.

PHP-код

<?php 
  $futureDate = '2015-03-20';
  $d = new DateTime($futureDate);
?>

Javascript

    $('#counter').countdown({

        timestamp : (new Date()).getTime() + <?php echo $d->diff(new DateTime())->format('%a*%h*%i*%s*1000'); ?> 
});

Вот предварительный просмотр

Предварительный просмотр

Пожалуйста, помогите кто-нибудь, лол


person Jake Duncan    schedule 25.02.2015    source источник
comment
используйте getDays вместо getTime(), так как вы конвертируете дни в микросекундах.   -  person Mouser    schedule 26.02.2015
comment
Разве это не futureDate - presentDate ? Или просто futureDate, ничего не добавляя, смотря что с этим делать?   -  person blex    schedule 26.02.2015
comment
В чем смысл всей этой математики? timestamp: (new Date()).getTime() + 22*2*10*55*1000   -  person Marc    schedule 26.02.2015


Ответы (2)


вы можете использовать что-то подобное в javascript

как вести обратный отсчет до даты

var end = new Date('03/20/2015 0:0 AM');

var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;

function showRemaining() {
    var now = new Date();
    var distance = end - now;
    if (distance < 0) {

        clearInterval(timer);
        document.getElementById('counter').innerHTML = 'EXPIRED!';

        return;
    }
    var days = Math.floor(distance / _day);
    var hours = Math.floor((distance % _day) / _hour);
    var minutes = Math.floor((distance % _hour) / _minute);
    var seconds = Math.floor((distance % _minute) / _second);

    document.getElementById('counter').innerHTML = days + 'days ';
    document.getElementById('counter').innerHTML += hours + 'hrs ';
    document.getElementById('counter').innerHTML += minutes + 'mins ';
    document.getElementById('counter').innerHTML += seconds + 'secs';
}

timer = setInterval(showRemaining, 1000);
person ETS    schedule 25.02.2015

Замените свой javascript на

$('#counter').countdown({
        timestamp : new Date('2015/03/20') 
});

Сейчас вы все слишком усложняете — вам просто нужно установить дату обратного отсчета, когда вы хотите, чтобы он закончился.

person Zach Sadler    schedule 25.02.2015