public static function readableTime($date, $long = false)
{
/* Initialize popular variables. */
if (!isset(self::$rtcache)) {
$desc = array(1 => array(_("second"), _("seconds")), 60 => array(_("minute"), _("minutes")), 3600 => array(_("hour"), _("hours")), 86400 => array(_("day"), _("days")), 604800 => array(_("week"), _("weeks")), 2628000 => array(_("month"), _("months")), 31536000 => array(_("year"), _("years")));
self::$rtcache = array('breaks' => array_keys($desc), 'desc' => $desc, 'time' => time());
}
$cache = self::$rtcache;
$i = count($cache['breaks']);
$secs = $cache['time'] - $date;
if ($secs < 2) {
return _("very little time");
}
while (--$i && $i && $cache['breaks'][$i] * 2 > $secs) {
}
$break = $cache['breaks'][$i];
$val = intval($secs / $break);
$retval = $val . ' ' . ($val > 1 ? $cache['desc'][$break][1] : $cache['desc'][$break][0]);
if ($long && $i > 0) {
$rest = $secs % $break;
$break = $cache['breaks'][--$i];
$rest = (int) ($rest / $break);
if ($rest > 0) {
$retval .= ', ' . $rest . ' ' . ($rest > 1 ? $cache['desc'][$break][1] : $cache['desc'][$break][0]);
}
}
return $retval;
}