Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Estou tentando criar um script que calcula a idade de uma pessoa, e estou com algumas dificuldades.
Primeiro eu gravo no MySQL a data de nascimento da forma: 00/00/0000 dd/mm/aa
Segudo, preciso resgatar esse valor passar por algum script e printar ele na tela do usuario.
Trazer o valor em variavel ate ai tudo bem, o problema é o calculo...
Em alguns casos eu preciso apresentar somente o XX Mes(es), outros somente XX Ano(s)
Achei esse script e tentei utiliza-lo mas estou com dificuldade, ele apresenta o erro la no final
****
Fatal error: Call to undefined function: ultimodiames() in /dominios/vhosts/dominio.com.br/html/calcula_idade.php on line 55
<?php
echo CalculaIdade('17/07/1984', "dma", "/"); // Separador / Dia/Mes/Ano
echo CalcularIdade('2006-08-17',"amd","-"); // Separados - Ano/Mes/Dia
function CalculaIdade($nascimento, $formato, $separador)
{
//Data Nascimento
$nascimento = explode($separador, $nascimento);
if ($data1>$data2)
{
return " ";
}
if ($formato=="dma")
{
$ano = $nascimento[2];
$mes = $nascimento[1];
$dia = $nascimento[0];
}
elseif ($formato=="amd")
{
$ano = $nascimento[0];
$mes = $nascimento[1];
$dia = $nascimento[2];
}
$dia1 = $dia;
$mes1 = $mes;
$ano1 = $ano;
$dia2 = date("d");
$mes2 = date("m");
$ano2 = date("Y");
$dif_ano = $ano2 - $ano1;
$dif_mes = $mes2 - $mes1;
$dif_dia = $dia2 - $dia1;
if ( ($dif_mes == 0) and ($dia2 < $dia1) ) {
$dif_dia = (ultimoDiaMes($data1) - $dia1) + $dia2;
$dif_mes = 11;
$dif_ano--;
} elseif ($dif_mes < 0) {
$dif_mes = (12 - $mes1) + $mes2;
$dif_ano--;
if ($dif_dia<0){
$dif_dia = (ultimoDiaMes($data1) - $dia1) + $dia2;
$dif_mes--;
}
} elseif ($dif_dia < 0) {
$dif_dia = (ultimoDiaMes($data1) - $dia1) + $dia2;
if ($dif_mes>0) {
$dif_mes--;
}
}
if ($dif_ano>0) {
$dif_ano = $dif_ano . " ano" . (($dif_ano>1) ? "s ": " ") ;
}
else { $dif_ano = ""; }
if ($dif_mes>0) {
$dif_mes = $dif_mes . " mes" . (($dif_mes>1) ? "es ": " ") ;
}
else { $dif_mes = ""; }
if ($dif_dia>0) {
$dif_dia = $dif_dia . " dia" . (($dif_dia>1) ? "s ": " ") ;
}
else { $dif_dia = ""; }
return $dif_ano . $dif_mes . $dif_dia;
//return $dif_ano . $dif_mes;
}
?>Carregando comentários...