Come faccio a trovare la differenza in giorni tra 2 date, conteggiando per giorno intero anche se non è completo di 24 ore? Mi spiego meglio:
dal 5/09/2005 al 6/09/2005 ci deve essere 1 giorno di differenza, anche se ci sono rimaste meno di 24 ore!
Come faccio a trovare la differenza in giorni tra 2 date, conteggiando per giorno intero anche se non è completo di 24 ore? Mi spiego meglio:
dal 5/09/2005 al 6/09/2005 ci deve essere 1 giorno di differenza, anche se ci sono rimaste meno di 24 ore!
$giorno1=mktime(0,0,0,9,5,2005);
$giorno2=mktime(0,0,0,10,5,2005);
fai la differenza dei due valori e poi dividi per il numero di secondi presenti in una giornata:
echo ($giorno2-giorno1)/86400;
ciao
Si, ma così ottengo che i giorni non completi non vengano conteggiati:
es:
$giorno1=mktime(10,0,0,9,5,2005);
$giorno2=mktime(0,0,0,10,5,2005);
echo ($giorno2-$giorno1)/86400;
risultato= 29.583333333333 gg.
Come faccio a gestire l'eventualità che ci sia una frazione di giorno e sapere se conteggiarla o meno?
ho messo la funzione abs perchè non si sa a priori quale data è la maggiorecodice:<? $data1 = mktime("0", "0", "0", $_POST[mese1], $_POST[giorno1], $_POST[anno1]); //timestamp della data1 alle ore 00:00 $data2 = mktime("0", "0", "0", $_POST[mese2], $_POST[giorno2], $_POST[anno2]); //timestamp della data1 alle ore 00:00 $giorni=abs($data1 - $data2)/(60*60*24); //faccio la differenza tra i 2 timestamp e la divido per il numero di secondi che c'è ogni giorno' echo "$giorni"; ?>![]()
in questo modo controlla se ci sono cifre decimali dopo la virgola nel numero di giorni. se è così prende la sola parte intera e aggiunge 1, cioè arrotonda per eccesso.codice:<? $data1 = mktime("10", "0", "0", $_POST[mese1], $_POST[giorno1], $_POST[anno1]); //timestamp della data1 alle ore 00:00 $data2 = mktime("0", "0", "0", $_POST[mese2], $_POST[giorno2], $_POST[anno2]); //timestamp della data1 alle ore 00:00 $giorni=abs($data1 - $data2)/(60*60*24); //faccio la differenza tra i 2 timestamp e la divido per il numero di secondi che c'è ogni giorno' if($giorni-intval($giorni)!=0) $giorni=intval($giorni)+1; echo "$giorni"; ?>
mhmmm mi sto andando ad incasinare la vita![]()
![]()
![]()
![]()
ma perchè specifichi l'ora scusa ????
fai semplicemente a meno di specificare l'ora facendo finta che siano le 0:0 e 0 secondi o no !!!!
Le date sono due variabili:un valore proviene da un campo in un database e l'altro è relativo alla funzione time(). Ma in effetti posso ricavarmi le due date senza tener conto degli orari, se questo può in qualche modo semplificarmi la situazione!