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:
come avrete notato la data_inizio è salvata in un batabase con formato DATE [aaaa-mm-gg].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; ?>
Io ho risolto mettendo un round() a numerogiorni, ma vorrei capire meglio il perché di questo comportamento.
C'è qualcuno disposto a spiegarmelo?
Grazie mille!![]()

Rispondi quotando
