Javascript:
I have object cell with something date
params.date = cell.getDate();
params.timestamp = cell.getDate().getTime() / 1000;
console.log(params);
Object {date: Thu May 09 2013 00:00:00 GMT+0800 (China Standard Time), timestamp: 1368028800}
Then I try to check timestamp in PHP
$date = '1368028800';
echo date('Y-m-d', $date);
2013-05-08
Difference in one day. Why?
params.date = cell.getDate();
Returns the DATE not the TIME.
params.timestamp = cell.getDate().getTime() / 1000;
is converting the date into a date+time - not reading the current time.
But even if you get the timestamp in javascript, the output of PHP's date function will depend on what timezone it is in.
When you get timestamp from Javacript date object :
it output will be interms of milli-seconds
<script>
var d = new Date();
alert(d.getTime());
</script>
output : 1386746353000
Where as php date object timestamp interms of seconds
<?php
$date = new DateTime();
echo $current_timestamp = $date->getTimestamp();
?>
output : 1386746353
So when you are going to use javascript date object timestamp with php date object you should divide timestamp of javascript by 1000 and use it in php
The UNIX Timestamp 1368028800 corresponds to the date Wed, 08 May 2013 16:00:00 GMT. In your example, you are on the China Standard Time (GMT+8), so Javascript display the datetime for this timezone (8 hours later -> 09 May)