Skip to content

Instantly share code, notes, and snippets.

@mikeerickson
Last active December 17, 2015 04:19
Show Gist options
  • Save mikeerickson/5550090 to your computer and use it in GitHub Desktop.
Save mikeerickson/5550090 to your computer and use it in GitHub Desktop.
PHP:howLongAgo
/**
* Returns twitter style time ago from supplied timestamp
* @param timestamp $timestamp [description]
* @return string [description]
*/
public static function howLongAgo($timestamp) {
$difference = time() - $timestamp;
if($difference >= 60*60*24*365){ // if more than a year ago
$int = intval($difference / (60*60*24*365));
$s = ($int > 1) ? 's' : '';
$r = $int . ' year' . $s . ' ago';
} elseif($difference >= 60*60*24*7*5){ // if more than five weeks ago
$int = intval($difference / (60*60*24*30));
$s = ($int > 1) ? 's' : '';
$r = $int . ' month' . $s . ' ago';
} elseif($difference >= 60*60*24*7){ // if more than a week ago
$int = intval($difference / (60*60*24*7));
$s = ($int > 1) ? 's' : '';
$r = $int . ' week' . $s . ' ago';
} elseif($difference >= 60*60*24){ // if more than a day ago
$int = intval($difference / (60*60*24));
$s = ($int > 1) ? 's' : '';
$r = $int . ' day' . $s . ' ago';
} elseif($difference >= 60*60){ // if more than an hour ago
$int = intval($difference / (60*60));
$s = ($int > 1) ? 's' : '';
$r = $int . ' hour' . $s . ' ago';
} elseif($difference >= 60){ // if more than a minute ago
$int = intval($difference / (60));
$s = ($int > 1) ? 's' : '';
$r = $int . ' minute' . $s . ' ago';
} else { // if less than a minute ago
$r = 'moments ago';
}
return $r;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment