如何从以下格式将字符串转换为PHP?

时间:2015-06-30 17:26:59

标签: php date timestamp date-conversion

我正在尝试使用PHP将字符串转换为以下格式的日期。这是一个时间戳,但我不确定其格式的技术术语,所以我在转换它时遇到了一些麻烦。

$timestamp = "20150611183741.941Z";

如何将其转换为数据类型?

2 个答案:

答案 0 :(得分:5)

.941Z是毫秒,标识符表示UTC。使用DateTime::createFromFormat(),您可以解析该字符串以获取您要查找的日期格式

$timestamp = "20150611183741.941Z";
$date = DateTime::createFromFormat('YmdHis.ue', $timestamp);

echo $date->format('Y-m-d H:i:s');

Demo

答案 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