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…

<?php
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);
if(empty($unix_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…

<?php

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

?>

Advertisements

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