Revision: 50440
Updated Code
at August 22, 2011 02:43 by claudiowebdesign
Updated Code
/* * Web site: http://claudiobonifazi.com * Blog: <under construction> * Email: [email protected] * Twitter: @ClaudioBonifazi */ function distanzaditempo($data){ // $data = unix timestamp $diff = time() - $data; $flag = $diff>0 ? true:false; // data nel passato o nel futuro? $diff = abs($diff); $anni = floor($diff / 31536000); $giorni = floor($diff / 86400) - $anni*365; $ore = floor($diff / 3600) - $giorni*24; $minuti = floor($diff / 60) - $ore*60; $secondi = $diff - $minuti*60; if($flag) $frase = $anni>0 ? ($anni>1 ? "$anni anni fa" : "L'anno scorso") : ($giorni>0 ? "$giorni giorni ".($giorni<3 ? "e $ore ore" : '').' fa' : ($ore>0 ? "$ore ore ".($ore<8 ? "e $minuti minuti" : '')." fa" : ($minuti>0 ? "$minuti minuti ".($secondi>0 ? "e $secondi secondi" : '')." fa" : "$secondi secondi fa"))); else $frase = $anni>0 ? ($anni>1 ? "tra $anni anni" : 'L\'anno prossimo') : ($giorni>0 ? ($giorni==1 ? "domani ".($ore>0 ? 'alle '.date('h') : 'alla stessa ora') : "tra $giorni giorni ".($giorni<3 ? "e $ore ore" : '')) : ($ore>0 ? "tra $ore ore ".($ore<8 ? "e $minuti minuti" : '') : ($minuti>0 ? "tra $minuti minuti ".($secondi>0 ? "e $secondi secondi" : '') : "tra $secondi secondi"))); if($diff == 0) $frase = 'adesso'; return $frase; } /* ESEMPI echo "Il post è stato scritto ".distanzaditempo ( time()-120 ); stamperà"Il post è stato scritto 2 minuti fa" echo "Il pannello torneràattivo ".distanzaditempo ( time()+86400 ); stamperà"Il pannello torneràattivo Domani alla stessa ora" echo "Hai aggiunto questo commento ".distanzaditempo ( time() ); stamperà"Hai aggiunto questo commento Adesso" */
Revision: 50439
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 22, 2011 02:42 by claudiowebdesign
Initial Code
/* * Web site: http://claudiobonifazi.com * Blog: <under construction> * Email: [email protected] * Twitter: @ClaudioBonifazi */ function distanzaditempo($data){ // $data = unix timestamp $diff = time() - $data; $flag = $diff>0 ? true:false; // data nel passato o nel futuro? $diff = abs($diff); $anni = floor($diff / 31536000); $giorni = floor($diff / 86400) - $anni*365; $ore = floor($diff / 3600) - $giorni*24; $minuti = floor($diff / 60) - $ore*60; $secondi = $diff - $minuti*60; if($flag) $frase = $anni>0 ? ($anni>1 ? "$anni anni fa" : "L'anno scorso") : ($giorni>0 ? "$giorni giorni ".($giorni<3 ? "e $ore ore" : '').' fa' : ($ore>0 ? "$ore ore ".($ore<8 ? "e $minuti minuti" : '')." fa" : ($minuti>0 ? "$minuti minuti ".($secondi>0 ? "e $secondi secondi" : '')." fa" : "$secondi secondi fa"))); else $frase = $anni>0 ? ($anni>1 ? "tra $anni anni" : 'L\'anno prossimo') : ($giorni>0 ? ($giorni==1 ? "domani ".($ore>0 ? 'alle '.date('h') : 'alla stessa ora') : "tra $giorni giorni ".($giorni<3 ? "e $ore ore" : '')) : ($ore>0 ? "tra $ore ore ".($ore<8 ? "e $minuti minuti" : '') : ($minuti>0 ? "tra $minuti minuti ".($secondi>0 ? "e $secondi secondi" : '') : "tra $secondi secondi"))); if($diff == 0) $frase = 'adesso'; return $frase; } /* ESEMPI echo "Il post è stato scritto ".distanzaditempo ( time()-120 ); stamperà "Il post è stato scritto 2 minuti fa" echo "Il pannello tornerà attivo ".distanzaditempo ( time()+86400 ); stamperà "Il pannello tornerà attivo Domani alla stessa ora" echo "Hai aggiunto questo commento ".distanzaditempo ( time() ); stamperà "Hai aggiunto questo commento Adesso" */
Initial URL
http://claudiobonifazi.com
Initial Description
Questa piccola funzione riceve come argomento uno unix timestamp e ritorna una stringa contenente la "descrizione verbosa" della differenza di tempo. Ad esempio, usando il timestamp relativo a 5 minuti e mezzo fa, ritornerà la stringa "5 minuti e 30 secondi fa". nota: Funziona anche con timestamp nel futuro, e dando il timestamp attuale ritorna "Adesso".
Initial Title
Mostrare differenze di tempo come stringhe
Initial Tags
php, date
Initial Language
PHP