Io utilizzo una funzione che avevo trovato qui, che ho tradotto e adattato per funzionare in italiano,.
codice:
function _ago($tm,$rcs = 0) {
$cur_tm = time();
$dif = $cur_tm-$tm;
$pds = array('secondo','minuto','ora','giorno','settimana','mese','anno','secolo');
$pdsp = array('secondi', 'minuti', 'ore', 'giorni', 'settimane', 'mesi', 'anni', 'secoli');
$lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);
for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
$no = floor($no);
if($no <> 1)
$pds[$v] = $pdsp[$v];
$x = sprintf("%d %s ",$no,$pds[$v]);
if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0))
$x .= time_ago($_tm);
$x .= " fa";
return $x;
}