« Back to the main page

Language: PHP, Submitted: 1/04/12, Country: Canada - Raw | Download
<?
function RelativeTime($time,$format='n/d/y',$onhover=true)
	{
		global $localtime, $tz_from_gmt;
		
		if (!is_numeric($time)) $time = strtotime($time);
		$minute	= 60;
		$hour	= 60 * $minute;
		$day	= 24 * $hour;
		$week	= 7 * $day;
		$month	= 4.35 * $week;
		
		$diff = $localtime - $time;
		
		$mins = round($diff / $minute);
		$hours = round($diff / $hour);
		$days = round($diff / $day);
		$weeks = round($diff / $week);
		$months = round($diff / $month);
		
		$timestamp = date('g:i A',$time);
		$monthstamp = date('M j',$time);
		$yearstamp = date($format,$time);
		$longstamp = date('l, F j, Y g:iA',$time) . ' ' . $tz_from_gmt;
		$endstamp = '';
		
		if ($diff <= $minute) {
			if ($diff < 0) $endstamp = "sometime in the future";
			$endstamp = $timestamp . " (" . $diff . " second" . ($diff!=1?"s":"") . " ago)";
		} elseif ($diff <= $hour) {
			$endstamp = $timestamp . " (" . $mins . " minute" . ($mins!=1?"s":"") . " ago)";
		} elseif ($diff <= $day) {
			$endstamp = $timestamp . " (" . $hours . " hour" . ($hours!=1?"s":"") . " ago)";
		} elseif ($diff < 2*$week) {
			$endstamp = $monthstamp . " (" . $days . " day" . ($days!=1?"s":"") . " ago)";
		} elseif ($diff < $month) {
			$endstamp = $monthstamp;
		} else {
			$endstamp = $yearstamp;
		}
		
		if ($onhover)
			return '<span title="' . $longstamp . '">' . $endstamp . '</span>';
		else
			return $endstamp;
			
	}
?>