PHP: Convert negative timestamp to date
php, timestamp
Solution
The below piece of code transforms your UNIX timestamp to a valid date-month-year. However , `passing pretty large negative unix timestamps can produce unexpected results` as shown below.
<?php
$dt = new DateTime();
$dt->setTimestamp(-1861945262080); //<--- Pass a UNIX TimeStamp
echo $dt->format('d-m-Y');
`OUTPUT :`
12-08-2035
However, you still can pass negative timestamps to the above thing. Consider this excerpt from `wikipedia`.
The Unix time number is zero at the Unix epoch, and increases by exactly 86400 per day since the epoch. Thus 2004-09-16T00:00:00Z, 12677 days after the epoch, is represented by the Unix time number 12677 × 86400 = 1095292800. This can be extended backwards from the epoch too, using negative numbers; thus 1957-10-04T00:00:00Z, 4472 days before the epoch, is represented by the Unix time number -4472 × 86400 = -386380800.
So let's pass the `-386380800` to the above code.
<?php
$dt = new DateTime();
$dt->setTimestamp(-386380800); //<--- Pass a UNIX TimeStamp
echo $dt->format('d-m-Y');
`OUTPUT :`
04-10-1957
which is the expected output as per the sources.
Problem
I have a negative timestamp and I wanted to convert it to a readable date format. ``` $timestamp = -1861945262080; ``` If I use `date("d-m-Y", $timestamp)`, it will just output 12-08-2035.