PHP Relative Time Function
$ September 11, 2013
Nice and simple. Converts a date to a relative time (e.g. “3 weeks ago”).
function relative\_time($date, $postfix = ' ago', $fallback = 'F Y') {
$diff = time() - strtotime($date);
if($diff < 60)
return $diff . ' second'. ($diff != 1 ? 's' : '') . $postfix;
$diff = round($diff/60);
if($diff < 60)
return $diff . ' minute'. ($diff != 1 ? 's' : '') . $postfix;
$diff = round($diff/60);
if($diff < 24)
return $diff . ' hour'. ($diff != 1 ? 's' : '') . $postfix;
$diff = round($diff/24);
if($diff < 7)
return $diff . ' day'. ($diff != 1 ? 's' : '') . $postfix;
$diff = round($diff/7);
if($diff < 4)
return $diff . ' week'. ($diff != 1 ? 's' : '') . $postfix;
$diff = round($diff/4);
if($diff < 12)
return $diff . ' month'. ($diff != 1 ? 's' : '') . $postfix;
return date($fallback, strtotime($date));
}