avevo uno script che ha sempre funzionato e che mi restituiva la differenza, in giorni, fra 2 date. Stamattina però tento di accedere e mi restituisce non più un numero intero, bensì un numero con ben 9 decimali, e non ne capisco il motivo. Ho risolto mettendo un round() ma volevo capire come mai di punto in bianco si è messo a sclerare in questo modo. Lo stesso script ce l'avevo su due server diversi e in entrambi stamattina ha avuto lo stesso comportamento.
Questo è il pezzo di codice in cui calcolo la differenza:
codice:
<?
$dmin = "SELECT data FROM click ORDER BY data ASC LIMIT 0,1";
$rmin = mysql_query($dmin)or die("Errore: ".mysql_error());
$rowd = mysql_fetch_assoc($rmin);
$pezzi = explode('-', $rowd['data']);
$data_inizio = mktime (0,0,0,$pezzi[1],$pezzi[2],$pezzi[0]);
$data_oggi = mktime (0,0,0,date("m"),date("d"),date("Y"));
$diff = $data_oggi-$data_inizio;
$numerogiorni=$diff/60/60/24;
echo 'Numero Giorni: '.$numerogiorni;
$media = $mio_tot/$numerogiorni;
$media = number_format($media, 1, ',','.');
echo '
Media accessi per giorno: '.$media;
?>
come avrete notato la data_inizio è salvata in un batabase con formato DATE [aaaa-mm-gg].
Io ho risolto mettendo un round() a numerogiorni, ma vorrei capire meglio il perché di questo comportamento.
C'è qualcuno disposto a spiegarmelo?
Grazie mille!