In questa funzione:
Tutto funziona correttamente tranne il primo case, non viene letto affatto, mi legge direttamente "0 secondi fa", cioè il secondo case. Come mai?Codice PHP:/* -- Funzione per Determinare il Tempo -- */
function formatdate($timestamp)
{
$hour = date('H.i:s' , $timestamp);
$mesi = array(1=>'01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12');
list($giorno,$mese,$anno) = explode('-',date('j-n-Y' , $timestamp));
$date = $giorno .'-'. $mesi[$mese] .'-'. $anno .', '. $hour .' <span>| ';
/* -- Determinare quanto Tempo Fa è stata Caricate l'Immagine o Commento -- */
$timelapse = time() - $timestamp;
switch ($timelapse)
{
case ($timelapse < 10) : $date .= 'Pochi secondi fa';
break;
case (($timelapse >= 10) && ($timelapse <= 60)) : $date .= $timelapse . ' secondi fa';
break;
case (($timelapse >= 60) && ($timelapse <= 3600)): $date .= ceil($timelapse / 60) .' minuti fa';
break;
case (($timelapse > 3600) && ($timelapse < 7200)): $date .= "Un' ora fa";
break;
case (($timelapse > 7200) && ($timelapse < 86400)): $date .= ceil($timelapse / 3600) .' ore fa';
break;
case (($timelapse >= 86400) && ($timelapse < 172800)): $date .= 'Ieri';
break;
case (($timelapse >= 172800) && ($timelapse < 864000)): $date .= ceil($timelapse / 86400) .' giorni fa';
break;
case (($timelapse >= 864000) && ($timelapse < 3024000)): $date .= ceil($timelapse / 604800) .' settimane fa';
break;
case (($timelapse >= 3024000) && ($timelapse < 47336400)): $date .= ceil($timelapse / 2629800) .' mesi fa';
break;
case (($timelapse >= 47336400) && ($timelapse < 63115200)): $date .= 'Meno di 2 anni fa';
break;
case ($timelapse >= 63115200):
($timelapse % 31557600 < 15778800) ? $modulus = '' : $modulus = 'e mezzo ';
$date .= 'Più di '. floor($timelapse / 31557600) .' anni '. $modulus .'fa';
break;
}
$date .='</span>';
return $date;
}

Rispondi quotando