Mata Hary 0 Denunciar post Postado Maio 31, 2007 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
alendre 0 Denunciar post Postado Maio 31, 2007 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
Mata Hary 0 Denunciar post Postado Maio 31, 2007 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 assimecho pegaIdade(1968-11-07);?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Maio 31, 2007 <?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