This article describes how php converts the date format to the format xx days ago. it involves php time operations and regular expression matching techniques and is very useful, for more information about how php converts the date format to the format xx days ago, see the following example. Share it with you for your reference. The details are as follows:
This code format the time in the format of 3 days ago, 5 seconds ago, 2 years ago
// 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 my 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], );}
I hope this article will help you with php programming.