Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mata Hary

calculo de idade no formato ano-mes-dia

Recommended Posts

Olá amigos do Imasters!

 

 

PRECISO DE UMA AJUDINHA

 

Tenho um formulario em php que envia a data de nascimento da pessoa para um campo do Banco de Dados MySql.

Tenho uma segunda página que LISTA a data da seguinte forma: 1968-11-07

que é exatamente como fica registrado no campo.

 

Eu preciso que apareça para o usuario a idade atual da pessoa acima que no caso nasceu em 07 de novembro de 1968 e hoje tem 38 anos.

 

Então em vez de aparece 1968-11-07 quero que apareça 38 anos

 

Já achei esse script aqui: http://forum.imasters.com.br/index.php?showtopic=125388

que é bom, mas nao serve para o que eu preciso. Porque ele mostra a data assim: "dia,mes,ano"

 

e eu preciso de um que pegue a data nesse formato "ano-mes-dia" e calcule a idade da pessoa.

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Mata Hary... Tudo bem...Acho q seja apenas você fazer o calculo com a data atual:$Data_do_Banco = 1968-11-07;$Data_atual = date('Y-m-d');echo $Idade = $Data_atual - $Data_do_Banco;Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi amigo,Obrigado pela ajuda! Nesse script que você me passou aconteceu o seguinte: o resultado deu 57 e nao 38.Eu digitei : echo $Data_do_Banco; e descobri que a data do banco ta saindo como 1950.Ele tá subtraindo 11 e 7 (ou seja,18) de 1968.Consegui resolver o problema colocando aspas, assim: $Data_do_Banco = '1968-11-07';mas continua errado pq a idade tá dando 39 anos, pq só tá subtraindo o ano e nao calcula o mes e o dia.Fiz assim:

<?function pegaIdade($anoNasc,$mesNasc,$diaNasc) {list ($ano,$mes,$dia) = explode("-",date("Y-m-d"));$idade = $ano-$anoNasc;$idade = (($mes<$mesNasc) OR (($mes==$mesNasc) AND ($dia<$diaNasc))) ? --$idade : $idade;return $idade;}echo pegaIdade(1968-11-07);?>

E deu esse erro:Warning: Missing argument 2 for pegaidade() in h:\www\hs~teste.php on line 1Warning: Missing argument 3 for pegaidade() in h:\www\hs~teste.php on line 157se fizer assim

echo pegaIdade(1968,11,07);?>

dá certo, mas nao resolve o meu problema pq preciso que ele aceite assim

echo pegaIdade(1968-11-07);?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
function pegaIdade($data) {
list ($ano, $mes, $dia) = explode("-",date("Y-m-d"));
list ($anoNasc, $mesNasc, $diaNasc) = explode("-", $data);
$idade = $ano-$anoNasc;
$idade = (($mes < $mesNasc) OR (($mes == $mesNasc) AND ($dia < $diaNasc))) ? --$idade : $idade;
return $idade;
}
echo pegaIdade('1968-11-07');
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.