25

Javascript:

我有一些日期的对象单元格

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

对象{日期:Thu May 09 2013 00:00:00 GMT+0800(中国标准时间),时间戳:1368028800}

然后我尝试检查 PHP 中的时间戳

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

2013-05-08

一日之差。为什么?

4

3 回答 3

25

当您从 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 中使用它

于 2013-12-10T18:23:58.987 回答
9
params.date = cell.getDate();

返回日期而不是时间。

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

正在将日期转换为日期+时间 - 不读取当前时间。

但即使您在 javascript 中获取时间戳,PHP 日期函数的输出也将取决于它所在的时区。

于 2013-03-24T00:41:42.320 回答
2

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)

于 2014-10-24T07:40:24.363 回答