This code can format the time 3 days ago, 5 seconds ago, 2 years ago
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 The |
"//convert a date into a string that tells H ow long ago//That date is ... eg:2 days ago, 3 minutes ago. Function ago ($d) {$c = getdate (); $p = Array (' Year ', ' mon ', ' mday ', ' hours ', ' minutes ', ' seconds '); $display = Array (' yea R ', ' 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]] * $f actor[$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 is. This converts I 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],); } |