我正在尝试使用PHP将字符串转换为以下格式的日期。这是一个时间戳,但我不确定其格式的技术术语,所以我在转换它时遇到了一些麻烦。
$timestamp = "20150611183741.941Z";
如何将其转换为数据类型?
答案 0 :(得分:5)
.941Z
是毫秒,标识符表示UTC。使用DateTime::createFromFormat()
,您可以解析该字符串以获取您要查找的日期格式
$timestamp = "20150611183741.941Z";
$date = DateTime::createFromFormat('YmdHis.ue', $timestamp);
echo $date->format('Y-m-d H:i:s');
答案 1 :(得分:0)
我知道它是一个旧线程,你现在可能已经找到了你的答案,只是用对我有用的东西来更新它。 u是微秒,我需要的是v for milliseconds v在PHP 7 FYI中添加了。
$datetime = new DateTime('2018-01-22T18:33:05.230234');
echo $datetime->format('Y-m-d\TH:i:s.v\Z'); // output 2018-01-22T18:33:05.230Z
您还可以在PHP<中实现上述目标。 7使用以下代码。
echo sprintf(
"%s%03dZ",
$datetime->format("Y-m-d\TH:i:s\."),
floor($datetime->format("u") / 1000)
); // output 2018-01-22T18:33:05.230Z