Javascript:
У меня есть ячейка объекта с чем-то датой
params.date = cell.getDate(); params.timestamp = cell.getDate().getTime() / 1000; console.log(params);
Объект {дата: май 09 2013 00:00:00 GMT + 0800 (Китайское стандартное время), временная метка: 1368028800}
Затем я пытаюсь проверить timestamp в PHP
$date = '1368028800'; echo date('Ym-d', $date);
2013-05-08
Разница в один день. Зачем?
params.date = cell.getDate();
Возвращает DATE, а не TIME.
params.timestamp = cell.getDate().getTime() / 1000;
преобразует дату в дату + время – не считывает текущее время.
Но даже если вы получите метку времени в javascript, вывод функции даты PHP будет зависеть от того, в какой временной зоне он находится.
Когда вы получаете временную метку от объекта даты 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
Временная метка UNIX 1368028800 соответствует дате Wed, 08 May 2013 16:00:00 GMT. В вашем примере вы находитесь на стандартном китайском времени (GMT + 8), поэтому Javascript отображает дату и время для этого часового пояса (через 8 часов -> 09 мая)