DateTime-> format(epoch)返回错误的日期

Boa*_*rdy 2 php datetime

我正在研究一个项目,我遇到了将时间段格式化为人类可读时间的问题.

我有以下的纪元时间1428512160,当我把它通过epochconverter.com时,我得到了08/04/2015 17:56:00 GMT+1:00 DST预期的人类时间.

然后,我使用以下代码执行从纪元时间到人类日期时间的转换.

$dt = new DateTime($supportDetails["Reported"]);
$reportedTimeString = $dt->format('d-m-Y H:i:s');
Run Code Online (Sandbox Code Playgroud)

$ supportDetails [报告]是纪元时间(我打印它所以我知道它是正确的).

然而,我得到的结果是08-04-2160 14:28:51.

Riz*_*123 9

您需要@在DateTime类中添加时间戳,如下所示:

$dt = new DateTime("@" . $supportDetails["Reported"]);
                  //^ See here
Run Code Online (Sandbox Code Playgroud)

您也可以在手册中看到这一点.从那里引用:

Unix时间戳 "@" " - "?[0-9] +"@ 1215282385"

另请注意,当前时区被忽略,您也可以在手册中看到:

注:$时区参数和当前时区被忽略时,$时间参数要么是一个UNIX时间戳(如@ 946684800(:00:00 + 02:00如2010-01-28T15))或指定一个时区.