Подтвердить что ты не робот

Временная метка между Javascript и PHP

JavaScript:

У меня есть ячейка объекта с чем-то датой

params.date = cell.getDate();
params.timestamp = cell.getDate().getTime() / 1000;
console.log(params);

Объект {дата: май 09 2013 00:00:00 GMT + 0800 (стандартное время в Китае), временная метка: 1368028800}

Затем я пытаюсь проверить метку времени в PHP

$date = '1368028800';
echo date('Y-m-d', $date);

2013-05-08

Разница за один день. Почему?

4b9b3361

Ответ 1

params.date = cell.getDate();

Возвращает DATE, а не TIME.

params.timestamp = cell.getDate().getTime() / 1000;

преобразует дату в дату + время - не считывает текущее время.

Но даже если вы получите метку времени в javascript, вывод функции даты PHP будет зависеть от того, в какой временной зоне он находится.

Ответ 2

Когда вы получаете отметку времени с объекта даты Javacript:

на выходе будут промежутки в миллисекундах

 <script>
        var d = new Date();
        alert(d.getTime());

     </script>

: 1386746353000

Где в качестве интервала времени метки объекта даты php секунд

<?php 
        $date = new DateTime();
        echo $current_timestamp = $date->getTimestamp();
     ?>

: 1386746353

Итак, когда вы собираетесь использовать метку даты даты javascript с объектом даты php, вы должны разделить метку времени на javascript на 1000 и использовать ее в php

Ответ 3

Временная метка UNIX 1368028800 соответствует дате Wed, 08 May 2013 16:00:00 GMT. В вашем примере вы находитесь в стандартном времени в Китае (GMT + 8), поэтому Javascript отображает дату и время для этого часового пояса (через 8 часов → 09 мая).