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

Jon*_*800 1 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>";
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

我怎样才能让它正确输出为:2016-03-08 17:48:53.506

Mar*_*ker 5

就这么简单

$unixTimestamp = 1457459333506;
$dt = DateTime::createFromFormat("U.u", $unixTimestamp / 1000);
var_dump($dt);
Run Code Online (Sandbox Code Playgroud)

使用 DateTime 对象

演示