This article describes how to use PHP to display time as "just", "5 minutes Ago", "Yesterday 10:23" and so on, rather than displaying the exact date and time.
This article will describe how to implement a time conversion based on the timeline.
First we need to understand several functions of time:
Time (): Returns the current Unix timestamp
Date (): Formats a local time/date.
Application Examples:
Date ("Y-m-d h:i:s", Time ());
Format current time, output: 2010-10-11 05:27:35
Strtotime (): Resolves a date-time description of any English text to a Unix timestamp.
Application Examples:
Echo strtotime ("+1 Day"), "\ n";
Output timestamp 1 days ago: 1286861475
Date_default_timezone_set (): Sets the default time zone to use.
Generally we set up Beijing time: Date_default_timezone_set ("PRC");
After understanding the above functions, we write the timeline function:
The principle of this function is to compare the current time of the system with the target time, to get a difference, and then compare the difference with the time range (converted to seconds), according to its output in the time axis different results (such as: 5 minutes ago). For ease of calculation, we convert the time to a UNIX timestamp.
Function trantime ($time) { $rtime = date ("M-d h:i", $time
); $htime = date ("H:i", $time); $time = time () - $time; if ($time < 60) { $str = ' Just '; } elseif ($time < 60 *
60) { $min = floor ($time/60); $str = $min. ' Minutes ago ';  }
elseif ($time < 60 * 60 * 24) { $h = floor ($time/(60*60)); $str = $h. ' Hours ago ' $htime; } elseif ($time < 60 * 60 * 24 * 3)
{ $d = floor ($time/(60*60*24)); if ($d ==1) $str = ' yesterday '. $rtime; else $str = ' the day before yesterday '. $rtime; } else { $str = $rtime; } return $str; }
The parameter $time in the function trantime () must be a Unix timestamp, and if not, convert it to a UNIX timestamp using Strtotime (). The above code at a glance to understand, no more.
Call function, Direct output:
$times = "1286861696";
echo Trantime ($times);