Quick Search:
 
 PHP Code: How many days ago Jump to:  
Category: >> PHP Code >> How many days ago  

<< lastnext >>

Snippet Name: How many days ago

Description: Takes a date and returns a string describing how long ago that date was, i.e 2 days ago, 5 minutes ago.

Comment: (none)

Language: PHP
Highlight Mode: PHP
Last Modified: February 27th, 2009

<?PHP
 
// convert a date into a string that tells how long 
// ago that date was.... eg: 2 days ago, 3 minutes ago.
FUNCTION ago($d) {
     $c = GETDATE();
     $p = ARRAY('year', 'mon', 'mday', 'hours', 'minutes', 'seconds');
     $display = ARRAY('year', 'month', 'day', 'hour', 'minute', 'second');
     $factor = ARRAY(0, 12, 30, 24, 60, 60);
     $d = datetoarr($d);
     FOR ($w = 0; $w < 6; $w++) {
          IF ($w > 0) {
               $c[$p[$w]] += $c[$p[$w-1]] * $factor[$w];
               $d[$p[$w]] += $d[$p[$w-1]] * $factor[$w];
          }
          IF ($c[$p[$w]] - $d[$p[$w]] > 1) { 
               RETURN ($c[$p[$w]] - $d[$p[$w]]).' '.$display[$w].'s ago';
          }
     }
     RETURN '';
}
 
// you can replace this if need be. This converts the dates 
// returned from a mysql date string into an array object similar 
// to that returned by getdate().
FUNCTION datetoarr($d) {
     PREG_MATCH("/([0-9]{4})(\\-)([0-9]{2})(\\-)([0-9]{2}) ([0-9]{2})(\\:)([0-9]{2})(\\:)([0-9]{2})/", $d, $matches);
    RETURN ARRAY( 
          'seconds' => $matches[10], 
          'minutes' => $matches[8], 
          'hours' => $matches[6],  
          'mday' => $matches[5], 
          'mon' => $matches[3],  
          'year' => $matches[1], 
     );
}
 
?>


 
   Home |    Search |    Code Library |    Sponsors |    Privacy |    Terms of Use |    Contact Us © 2003 - 2024 psoug.org