【问题标题】:PHP - Unix timestamp to DateTime string, maintaining milliseconds precision [duplicate]PHP - 日期时间字符串的 Unix 时间戳,保持毫秒精度 [重复]
【发布时间】:2016-06-23 21:32:10
【问题描述】:

我有一个时间戳

1457459333506(格林威治标准时间 2016 年 3 月 8 日星期二 17:48:53)

这应该是 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

【问题讨论】:

  • 仅供参考,Unix / POSIX / Epoch / 时间定义为 (Wikipedia)。你有一个时间戳乘以 1000。

标签: php datetime epoch


【解决方案1】:

就这么简单

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

使用 DateTime 对象

Demo

【讨论】:

  • \DateTime::createFromFormat("U", $timestampInMiliseconds / 1000);
猜你喜欢
  • 2021-01-06
  • 2017-10-11
  • 2011-12-30
  • 1970-01-01
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
相关资源
最近更新 更多