PHP日期创建不是';t显示正确的时间


PHP date_create isn't displaying the right hour

我有一个Unix时间戳,我想将其转换为常规时间(String)。我的Unix时间戳:

1385767232382

我的脚本:

$date = date_create(date('c', "1385767232"), new DateTimeZone('PST'));
echo date_format($date, 'Y-m-d H:i');

我从Unix时间戳中删除了最后三位,因为我得到了一个非常奇怪的时间,所以我通过删除最后三位将其从毫秒改为秒。

脚本返回的日期:

2013-11-29 23:20

返回日期:

2013-11-29 15:20

我试过其他几次约会,结果都一样。只是时间不好,其余的都很好。

提前谢谢。

编辑:03:20->15:20

时区不正确,因为当第一个参数指定时区时,date_create的第二个参数会被忽略(请参阅文档中的注释)。在您的情况下,使用的格式确实指定了时区,并且由于date不明确接受时区,因此时区是默认的系统时区,而不是PST。

这是正确的方法:

$d = date_create('@1385767232');
date_timezone_set($d, new DateTimeZone('PST'));
echo $d->format('Y m d H:i:s');  // 2013 11 29 15:20:32

试试这个

echo date("Y-m-d",strtotime(1385767232382));

您可以执行以下操作:

echo(date("Y-m-d H:i", "1385767232"));

为什么要做额外的工作,比如删除3个digi。。?

下面给出的实际值是正确的。。$date=date_create(日期('c',"1385767232"),新日期时区('PST'));echo date_format($date,'Y-m-d H:i');

你可能在分析时区时遇到了麻烦,请确保这一点。