Return to Snippet

Revision: 16902
at August 18, 2009 17:47 by iTony


Initial Code
<?php
function relativeTime($time = false, $limit = 86400, $format = 'g:i A M jS') {
if (empty($time) || (!is_string($time) &amp;&amp; !is_numeric($time))) $time = time();
elseif (is_string($time)) $time = strtotime($time);

$now = time();
$relative = '';

if ($time === $now) $relative = 'now';
elseif ($time > $now) $relative = 'in the future';
else {
$diff = $now - $time;

if ($diff >= $limit) $relative = date($format, $time);
elseif ($diff < 60) {
$relative = 'less than one minute ago';
} elseif (($minutes = ceil($diff/60)) < 60) {
$relative = $minutes.' minute'.(((int)$minutes === 1) ? '' : 's').' ago';
} else {
$hours = ceil($diff/3600);
$relative = 'about '.$hours.' hour'.(((int)$hours === 1) ? '' : 's').' ago';
}
}

return $relative;
}

Initial URL


Initial Description


Initial Title
Relative Time Function

Initial Tags
function, user

Initial Language
PHP