PHP date_创建isn';t显示正确的时间

PHP date_创建isn';t显示正确的时间,php,time,format,unix-timestamp,Php,Time,Format,Unix Timestamp,我有一个Unix时间戳,我想将其转换为常规时间(字符串)。 我的Unix时间戳: 1385767232382 我的剧本: $date = date_create(date('c', "1385767232"), new DateTimeZone('PST')); echo date_format($date, 'Y-m-d H:i'); 我从Unix时间戳中删除了最后三个数字,因为我得到了一个非常奇怪的时间,所以我通过删除最后三个数字将时间从毫秒更改为秒 脚本返回的日期: 2013-11-2

我有一个Unix时间戳,我想将其转换为常规时间(字符串)。 我的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试试这个

echo date("Y-m-d",strtotime(1385767232382));
你可以这样做:

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

时区不正确,因为当第一个参数指定时区时,
date\u 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

为什么你要做额外的工作,比如删除3个数字

下面给出的实际值是正确的。。 $date=date_创建(date('c','1385767232')、新日期时区('PST'); echo date_格式($date,'Y-m-dh:i')


您可能在分析时区时遇到了麻烦,请务必这样做。

您尝试的时区是什么,unix时间戳的时区是什么?只想知道,@sign在这里有什么用途@1385767232@mazraara:这只是告诉
date\u create
您正在传递时间戳的一种方式。看见