/ Published in: PHP
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".
nota: Funziona anche con timestamp nel futuro, e dando il timestamp attuale ritorna "Adesso".
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/* * Web site: http://claudiobonifazi.com * Blog: <under construction> * Email: [email protected] * Twitter: @ClaudioBonifazi */ function distanzaditempo($data){ // $data = unix timestamp $flag = $diff>0 ? true:false; // data nel passato o nel futuro? $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" */
URL: http://claudiobonifazi.com