[英]DateTime->format(epoch) returning the wrong date
我正在研究一个项目,我遇到了将时间段格式化为人类可读时间的问题。
我有以下纪元时间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');
$ supportDetails [报告]是纪元时间(我打印它所以我知道它是正确的)。
我回来的结果是08-04-2160 14:28:51
。
打印日期和时间是正确的。 它基于您在PHP中设置的GMT。 如果使用GMT打印,您将获得所需的结果。
请尝试以下代码:
$reportedTimeString = date("dmY H:i:s", $supportDetails["Reported"]);
或者以下内容:
$date = new DateTime();
$date->setTimestamp($supportDetails["Reported"]);
$reportedTimeString = $date->format("d-m-Y H:i:s");
我看到的问题是你的格式。
如果你看一下PHP的日期函数,你会发现你只需要将所需日期和时间的每个部分写成一个字符串。
以下格式提供了您要查找的相同输出:
$dt = new DateTime($supportDetails["Reported"]); $reportedTimeString = $dt->format('d/m/YH:i:s \\G\\M\\TP T');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.