我有一个负时间戳,我想将其转换为可读日期格式。
$timestamp = -1861945262080;
如果我使用date("d-m-Y", $timestamp)
,它只会输出12-08-2035。
答案 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
这是根据来源的预期输出。