Capita a volte di avere la necessità di presentare la data in un formato che non sia il classico data/mese/anno ma magari qualcosa di più amichevole nei confronti dei vostri utenti magari proprio come fanno gli amici di Facebook.com. Sicuramente scrivere (e leggere) “Aggiornato 5 ore fa” è molto più naturale e comodo rispetto ad un criptico: “Aggiornato il 22/12/2009 alle 15:32″. Ecco di seguito una funzione in PHP che, partendo da un timestamp in formato UNIX, restituisce una stringa con un formato di data “alla facebook” (giusto per confermare l’esempio che dà il nome a questo post
)
function timestamp_to_ago($ts){
$now = time();
$life = $now-$ts;
$seconds = $life;
$minutes = floor($life / 60);
$hours = floor($life / (60 * 60));
$days = floor($life / (60 * 60 * 24));
if($seconds && !$minutes) {
$qty = $seconds;
$unit = $seconds == 1 ? 'secondo' : 'secondi';
}elseif($seconds && $minutes && !$hours){
$qty = $minutes;
$unit = $minutes == 1 ? 'minuto' : 'minuti';
}elseif($seconds && $minutes && $hours && !$days){
$qty = $hours;
$unit = $hours == 1 ? 'ora' : 'ore';
}elseif($seconds && $minutes && $hours && $days){
$qty = $days;
$unit = $days == 1 ? 'giorno' : 'giorni';
}
$time = "{$qty} {$unit} fa";
return $time;
}





