Time Ago – Display How Long Something Has Been Posted Using PHP

Usually, websites and blogs display the date (month-day-year) of published posts, and then there are some that show you how long it has been since an entry was published by displaying something like “Posted 1 week ago”, “2 months ago”, “3 days ago”, etc.

Today’s featured PHP snippet will allow you to do the latter.

<?php 
function prettyDate($date){ 
 $time = strtotime($date); 
 $now = time(); 
 $ago = $now - $time; 
 if($ago < 60){ 
 $when = round($ago); 
 $s = ($when == 1)?"second":"seconds"; 
 return "$when $s ago"; 
 }elseif($ago < 3600){ 
 $when = round($ago / 60); 
 $m = ($when == 1)?"minute":"minutes"; 
 return "$when $m ago"; 
 }elseif($ago >= 3600 && $ago < 86400){ 
 $when = round($ago / 60 / 60); 
 $h = ($when == 1)?"hour":"hours"; 
 return "$when $h ago"; 
 }elseif($ago >= 86400 && $ago < 2629743.83){ 
 $when = round($ago / 60 / 60 / 24); 
 $d = ($when == 1)?"day":"days"; 
 return "$when $d ago"; 
 }elseif($ago >= 2629743.83 && $ago < 31556926){ 
 $when = round($ago / 60 / 60 / 24 / 30.4375); 
 $m = ($when == 1)?"month":"months"; 
 return "$when $m ago"; 
 }else{ 
 $when = round($ago / 60 / 60 / 24 / 365); 
 $y = ($when == 1)?"year":"years"; 
 return "$when $y ago"; 
 } 
} 
echo prettyDate("2012-07-22 12:23:45")."<br />"; 
echo prettyDate("2010-11-12 22:25:45")."<br />"; 
echo prettyDate("2012-01-01 01:00:00")."<br />"; 
echo prettyDate("2001-05-30 00:00:00")."<br />";     

Incoming search terms for the article:

Related Posts

Oregon-Inspired Photoshop Tutorial

Create Google Play’s Tab Navigation Using jQuery And CSS

PS Advanced Compositioning

How To Create A Triangular Pixelation Effect Using Photoshop