PHP - Unix时间戳到DateTime字符串,保持毫秒精度

时间:2016-03-09 13:20:44

标签: php datetime epoch

我有时间戳

  

1457459333506(2016年3月8日星期二17:48:53 GMT)

这应该是Unix时间戳,以毫秒为单位。我想把它写成一个字符串,所以我使用

$dt = new DateTime("@$unixTimestamp");
echo date('Y-m-d H:i:s.u', $unixTimestamp) . "<br>";

但输出 2016-06-08 22:09:22.000000

这显然是错误的,没有毫秒精度。所以我试过了

echo date('Y-m-d H:i:s.u', $unixTimestamp / 1000) . "<br>";

哪个输出 2016-03-08 17:48:53.000000 (正确,但也没有毫秒精度)。

如何才能正确输出: 2016-03-08 17:48:53.506

1 个答案:

答案 0 :(得分:2)

就像

一样简单
$unixTimestamp = 1457459333506;
$dt = DateTime::createFromFormat("U.u", $unixTimestamp / 1000);
var_dump($dt);

使用DateTime对象

Demo