PHP

PHP: Time difference Facebook Twitter style

If you ever wanted to display the time elapsed in Facebook or Twitter style (recall the format: 20 minutes ago, 100 days ago?). Here is a handy little snippet in PHP, that will let you do exactly the same.

How to show Time difference using Facebook Twitter style

In order to show the time difference in Facebook Twitter style using PHP, use the following code:

<?php

function time_difference($date)
{
if(empty($date)) {
return "Please provide date.";
}

$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);

// check validity of date
if(empty($unix_date)) {
return "Invalid date";
}

//Check to see if it is past date or future 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}";
}

//Current date and time
$current_date = date("Y-m-d G:i");
echo 'Current Date: '.$current_date.'<br />';
$elapsed_time = time_difference($current_date);
echo $elapsed_time.'<br />';
//Ouputs: 53 seconds ago

//Past date and time
$past_date = date("2010-1-1 12:00");
$elapsed_time = time_difference($past_date);
echo $elapsed_time.'<br />';
//Ouputs: 2 years ago

//Future date and time
$future_date = date("2013-1-1 12:00");
$elapsed_time = time_difference($future_date);
echo $elapsed_time.'<br />';
//Ouputs: 11 months from now
?>
That’s it!

Do you know of any other ways to display the time difference in Facebook/Twitter style? If yes, we would love to hear from you. Please leave your comments below.

Share your thoughts, comment below now!

*

*