将纪元时间转换为日期PHP

时间:2012-11-20 16:36:48

标签: php time epoch

我现在正在使用API​​,它提供了一个epochTime。我已经尝试了将这个纪元时间转换为日期的所有内容,但它似乎不起作用,包括$epoch_time / 1000,然后使用date()函数进行转换。

纪元时间看起来像这样1353430853299.有办法做到这一点吗? strtotime()也没有用。

似乎关于纪元时间的所有其他读物都是关于将日期更改为纪元时间,但我希望反过来。任何帮助是极大的赞赏。

7 个答案:

答案 0 :(得分:38)

使用substr($ epoch,0,10)修复它,然后对任何想知道13位纪元时间的人使用日期函数。

以下是示例代码:

echo date("Y-m-d H:i:s", substr("1477020641000", 0, 10));
// Result: 2016-10-20 20:30:41

答案 1 :(得分:27)

有几种不同的方法可以做到这一点。

首先,你所拥有的是一个Unix纪元时间。 (1970年1月1日),这使得一切变得更加容易。

在PHP中,尝试

$epoch = 1344988800;
$dt = new DateTime("@$epoch");
echo $dt->format('Y-m-d H:i:s');

显示日期

OR

如果你想要长RFC232日期:

echo date('r', $epoch);

答案 2 :(得分:11)

$epoch = 1344988800;
$dt = new DateTime("@$epoch"); // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2012-08-15 00:00:00 

更多:http://www.epochconverter.com/programming/functions-php.php

答案 3 :(得分:11)

<?php
$epoch = '1353429562';

date_default_timezone_set('GMT');
echo date('Y-m-d H:i:s', $epoch);

答案 4 :(得分:2)

仅供参考,发送JSON数据的API使用毫秒级的纪元与网络浏览器兼容。

我不知道为什么PHP需要删除millisecondes,因为它是每个Web浏览器的标准。

所以,你可以使用左边10或/ 1000(如果你不想在2286年11月20日遇到麻烦,最好除以1000!)

答案 5 :(得分:1)

您只需要从纪元格式

中选择 10 位数字
<?php echo date("Y-m-d H:i:s", substr("1621157545307", 0, 10)); ?>

输出如下:

<块引用>

2021-05-16 15:02:25

答案 6 :(得分:0)

回显日期(“ Y-m-d H:i:s”,回合(1353430853299/1000))有效 用1000除以得到1353430853.299,因此必须舍入以除去数字的小数部分。如果您不希望将地板弄圆,也可以使用地板。