Reputation: 2318
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?
Upvotes: 27
Views: 42886
Reputation: 31
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)
Upvotes: 3
Reputation: 1360
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
Upvotes: 29
Reputation: 48357
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.
Upvotes: 11