[risolto] Funzione per calcolo età

  • Creatore Discussione Creatore Discussione newOne
  • Data di inizio Data di inizio

newOne

Utente Attivo
5 Feb 2014
30
0
0
Ciao, spulciando nella rete ho trovato una funzione per calcolare l'età di un utente in base alla data di nascita.

La funzione è questa:

PHP:
function age($Birthdate)
{
	//$Birthdate = "$year-$month-$day";
 	list($BirthYear,$BirthMonth,$BirthDay) = explode("-", $Birthdate);
	// Find the differences
	$YearDiff = date("Y") - $BirthYear;
	$MonthDiff = date("m") - $BirthMonth;
	$DayDiff = date("d") - $BirthDay;
	// If the birthday has not occured this year
	if ($DayDiff < 0 || $MonthDiff < 0)
	$YearDiff--;
	return $YearDiff;		
 
}

La funzione restituisce l'età, ma c'è un problema. Se inserisco una data di nascita avanti col tempo in base alla data corrente, ma dello stesso anno (per esempio: 1972-20-04 : ovvero 20 aprile 1972) la funzione mi restituisce anni 42 anche se l'utente ha ancora 41 anni visto che il suo compleanno sarà in aprile.

Sapreste aiutarmi?

Grazie
 
Ciao, a me restituisce 41
PHP:
echo age("1972-20-04");
 
Ciao, prova ad inserire 2 aprile 1972 (1972-02-04) e vedrai che ti restituisce 42...Come mai?
 
Non è il due aprile ma il 4 febbraio ed è già passato
vedi le note nel codice
PHP:
//$Birthdate = "$year-$month-$day";
 

Discussioni simili