如何将 13 位 Unix 时间戳转换为日期和时间?

How to convert a 13 digit Unix Timestamp to Date and time?

我有这个 13 位数字时间戳 1443852054000,我想将其转换为日期和时间,但没有成功。我试过这个代码:

echo date('Y-m-d h:i:s',$item->timestamp); 

对我和这个都不起作用

$unix_time = date('Ymdhis', strtotime($datetime ));

还有这个:

$item = strtotime($txn_row['appoint_date']); 
<?php echo date("Y-m-d H:i:s", $time); ?>

我应该使用什么?

这个时间戳是毫秒,不是秒。将其除以 1000 并使用 date 函数:

echo date('Y-m-d h:i:s', $item->timestamp / 1000);
// e.g
echo date('Y-m-d h:i:s',1443852054000/1000);
// shows 2015-10-03 02:00:54

您可以通过 DateTime::createFromFormat 实现。

因为您有一个 timestamp13 digits,您必须将它除以 1000,以便将它与 DateTime 一起使用,即:

$ts = 1443852054000 / 1000; // we're basically removing the last 3 zeros
$date = DateTime::createFromFormat("U", $ts)->format("Y-m-d h:i:s");
echo $date;
//2015-10-03 06:00:54

演示版

http://sandbox.onlinephpfunctions.com/code/d0d01718e0fc02574b401e798aaa201137658acb


您可能希望set the default timezone避免任何警告

date_default_timezone_set('Europe/Lisbon');

注意:

有关 php 日期和时间的更多信息,位于 php the right way

JavaScript中使用 13 位时间戳来表示以毫秒为单位的时间。在 PHP10 中,数字时间戳用于表示以秒为单位的时间。所以除以 1000 并四舍五入得到 10 位数。

$timestamp = 1443852054000;
echo date('Y-m-d h:i:s', floor($timestamp / 1000));