Time-Ago in PHP

Did anyone try to display x-seconds/minutes/years ago style of time like in @twitter or #Facebook?

Today I will show you how to do that in a simple way using PHP basic implementations…

function nicetime($date)//a user-defined function for conversion of time
if(empty($date)) {
return “No date provided”;

// an array that stores units of time…

// an array that stores values like seconds,days,hours, etc.,

$periods = array(“second”, “minute”, “hour”, “day”, “week”, “month”, “year”, “decade”);
$lengths = array(“60″,”60″,”24″,”7″,”4.35″,”12″,”10”);

$now = time();
$unix_date = strtotime($date);
return “Bad date”;
if($now > $unix_date) {
$difference = $now – $unix_date;
$tense = “ago”;

} else {
$difference = $unix_date – $now;
$tense = “from now”;

for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];

$difference = round($difference);

if($difference != 1) {
$periods[$j].= “s”;
return “$difference $periods[$j] {$tense}”;


// How to use this code??

//just callthis function sending curent date of posting as parameter and use the return value to display…


//set default time-zone of your location…
$date = “2014-05-08 21:10”;
echo nicetime($date);



Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s