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

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 мая)