将纪元时间转换为日期PHP

use*_*252 35 php time epoch

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

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

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

use*_*252 42

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

这是一个示例代码:

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

  • 粗略地说,纪元数字长度在 09/2001 左右减少了 1 位,从 13 位数字减少到 12 位数字,然后在 03/1973 年再次出现负数,并且在 1970 年之后长度会增加。我会将其更改为 `echo date("Ymd H:i:s", substr("1477020641000", 0, -3));` 来解释这一点。 (2认同)

Jon*_*Jon 28

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

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

在PHP中,试试

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

显示您的日期

要么

如果你想要长RFC232日期:

echo date('r', $epoch);
Run Code Online (Sandbox Code Playgroud)


two*_*ate 15

$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 
Run Code Online (Sandbox Code Playgroud)

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

  • 您拥有的是UNIX时间戳加上三位数毫秒,该值是当前时间与1970年1月1日UTC午夜之间的差值(以毫秒为单位).略过最后三位数字并将其输入日期() (3认同)

Raw*_*ode 11

<?php
$epoch = '1353429562';

date_default_timezone_set('GMT');
echo date('Y-m-d H:i:s', $epoch);
Run Code Online (Sandbox Code Playgroud)