如何在PHP中将纪元时间戳转换为UTC格式,如2014-06-25T14:38:52.359Z

时间:2014-06-25 21:01:46

标签: php datetime date-format utc epoch

我希望将EPOCH时间戳(如1372190184)转换为格式2014-06-25T14:38:52.359Z。

我尝试过以下代码,但我得到的格式与我需要的格式不同。

$start = new DateTime(date('r', '1372190184'));
$startDateText = $start->format('Y-m-dTH:i:sZ');
var_dump($startDateText);
exit();

但我得到输出为字符串(30)" 2013-06-25GMT + 020021:56:247200"这与我的预期不同。

2 个答案:

答案 0 :(得分:2)

您忘记了格式中的反斜杠,以及转储中startDateText之前的美元符号:

$start = new DateTime(date('r', '1372190184'));
$startDateText = $start->format('Y-m-d\TH:i:s\Z');
var_dump($startDateText);

此外,如果您要查找微秒,请添加u格式字符。

答案 1 :(得分:0)

您应该将 date_default_timezone_set 设置为UTC以获得所需的输出。格式如您所愿。并确保以格式转义特殊字符。

date_default_timezone_set('UTC');
$epoch = 1340000000;
echo gmdate('r', $epoch);