function ago($time, $time2 = '') { if (!$time) { return 'never'; } if (!$time2) { $time2 = time(); } $diff = $time2 - $time; //if ($diff < ) //yday $min = 60; $hr = 60 * $min; $day = $hr * 24; $week = $day * 7; $year = $day * 365; $month = ceil($year / 12); // Persudo month. $time_array['year'] = $year; $time_array['month'] = $month; $time_array['week'] = $week; $time_array['day'] = $day; $time_array['hr'] = $hr; $time_array['min'] = $min; $time_array['sec'] = 1; foreach ($time_array as $type=>$time) { $is = floor($diff / $time); $left = $diff % $time; if ($is > 1) { $type .= 's'; } $return["$type"] = $is; $diff = $left; } foreach ($return as $type=>$measurement) { switch ($type) { case 'secs': case 'sec': if ($measurement < 10 && $ago) { $ago .= '0'; } $ago .= $measurement; break; case 'mins': case 'min': if ($measurement < 10 && $ago) { $ago .= '0'; } $ago .= $measurement.':'; break; case 'hrs': case 'hr': $ago .= ' '.$measurement.':'; break; default: if ($measurement) { $ago .= ' '.$measurement.' '.$type; } break; } } return $ago; }