PHP:将负时间戳转换为日期

时间:2014-02-03 08:46:50

标签: php timestamp

我有一个负时间戳,我想将其转换为可读日期格式。

$timestamp = -1861945262080;

如果我使用date("d-m-Y", $timestamp),它只会输出12-08-2035。

1 个答案:

答案 0 :(得分:3)

下面的代码将您的UNIX时间戳转换为有效的日期 - 月 - 年。但是, passing pretty large negative unix timestamps can produce unexpected results 如下所示。

 <?php
    $dt = new DateTime();
    $dt->setTimestamp(-1861945262080); //<--- Pass a UNIX TimeStamp
    echo $dt->format('d-m-Y');

<强> OUTPUT :

12-08-2035

但是,您仍然可以将负时间戳传递给上述内容。请考虑wikipedia中的摘录。

  

Unix时代的Unix时间数为零,并且增加了   自纪元以来每天恰好86400。因此2004-09-16T00:00:00Z,   在纪元后12677天,由Unix时间数表示   12677×86400 = 1095292800.这可以从后面向后延伸   时代也是如此,使用负数;因此1957-10-04T00:00:00Z,4472   在纪元之前的几天,由Unix时间数-4472×表示   86400 = -386380800。

所以让我们将-386380800传递给上面的代码。

 <?php
    $dt = new DateTime();
    $dt->setTimestamp(-386380800); //<--- Pass a UNIX TimeStamp
    echo $dt->format('d-m-Y');

<强> OUTPUT :

04-10-1957

这是根据来源的预期输出。