Salve ho fatto questa funzione per visualizzare la differenza tra 2 date in anni mesi e giorni:
Codice PHP:
function datadiff($datareg, $lang){
$arrdatareg=explode(" ",$datareg);
$arrdatareg=explode("-",$datareg);
$datareg=mktime(12,0,0,$arrdatareg[1],$arrdatareg[2],$arrdatareg[0]);
$datatt=date("Y/m/d");
$arrdatatt=explode("/",$datatt);
$datatt=time();
$diffdate=($datatt - $datareg);
$giorni=ceil(($diffdate / 60 / 60 / 24) / 1);
$mesi=floor(($diffdate / 60 / 60 / 24) / (365 / 12)-12);
$anni=floor(($diffdate / 60 / 60 / 24) / 365);
($anni>1) ? $stringanno="anni" : $stringanno="anno";
($mese>1) ? $stringmese="mesi" : $stringmese="mese";
$stringgiorno= ($giorni==1) ? "giorno" : "giorni";
if($anni>0) $string="$anni $stringanno, ";
if($mesi>0) $string.="$mesi $stringmese e ";
($giorni>0) ? $string.="$giorni $stringgiorno" : $string="meno di 1 giorno $giorni";
}
ora anni e mesi vanno bene ma giorni mi da naturalmente il totale dei giorni trascorsi ma a me servirebbe non il totale ma la somma entro i 30 giorni del mese ad esempio se oggi è 11 e la data precedente è 6 dovrebbe darmi 5 giorni trascorsi.
Se la distanza è inferiore a 30 mi da il risultato giusto ma superiore a 30 no, ad esempio se sono trascorsi 45 giorni tra le 2 date mi dovrebbe dare 1 mese e 15 giorni mentre mi da 1 mese e 45 giorni (anche qui giustamente ma non so come dividere $giorni per farmi dare la differenza dei giorni).