/** * Fun��o que calcula a diferen�a entre uma data passada comparando com o dia atual * @param int $year Ano com 4 d�gitos * @param int $month Mes - [1-12] * @param int $day Dia - [1-31] * @return array Vetor sendo o indice zero a diferen�a em Anos, o indice 1 o restante da diferen�a em meses, o indice 2 o restante da diferen�a em dias da data atual * / function getAge($year, $month, $day){ try{ // Primeiro devemos validar a data passada if(!checkdate($month,$day,$year)) throw new Exception('Data inv�lida'); // Calculando a idade em anos $years_old = date('Y')- $year - (int)( (mktime(0,0,0, $month,$day))-time()>0); // Calculando o restante da idade em meses $months = (12-$month)+ date('m')-(int)(date('d')<$day); // calculando o restante da idade em dias $days=($day<date('d')?date('d')-$day:(date('t',strtotime('-1 month'))-$day)+date('d')); echo $diff; return array($years_old,$months,$days); }catch(Exception $e){ trigger_error($e->getMessage()); return false; } } print_r(getAge(1990,2,25)); // Array ( [0] => 36 [1] => 11 [2] => 19 ) // comparando com a Classe DateTime $eu = new DateTime('1974-02-25'); $diff = $eu->diff(new DateTime()); echo $diff->format('%y %m %d');  // 36 11 19