Ir para conteúdo
Fórum Script Brasil

daviaer

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre daviaer

daviaer's Achievements

0

Reputação

  1. Galera sou novo nesse tal de php...rsrsrs Estou perdendo os cabelos por causa de um erro no cálculo de idade. Fiz um formulário em html e os scripts em php. Algumas data retornam com a idade certa, no entanto, outras retornam um erro. Segue meu código *** Formulário <!DOCTYPE html> <html lang="pt-br"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Calcular o IMC</title> </head> <body> <form method="post" name="form_IMC" action="imc.php" > <fieldset> <legend>Descubrindo seu IMC</legend> <legend><h2><b>Informe seus dados</b></h2></legend> <label>Nome:</label> <input name="nome" type="text" size="40"/><p> <label>Data de nascimento: </label> <input type="date" maxlength="10" name="data" pattern="[0-9]{2}\/[0-9]{2}\/[0-9]{4}$" /> <label>Sexo: </label> <select name="sexo"> <option value="Masculino" />Masculino</option><br /> <option value="Feminino" />Feminino</option><br /> </select><p> <label>Peso (Kg): </label> <input type="text" name="peso" /><p> <label>Altura (cm): </label> <input type="text" name="altura" /><p> <input type="submit" value="Enviar"/> <input type="reset" value="Limpar"/> </fieldset> </form> </body> </html> ****PHP <?php $nome = $_POST["nome"]; $data = $_POST["data"]; $sexo = $_POST["sexo"]; $peso = $_POST["peso"]; $altura = $_POST["altura"]; $imc = $peso / (($altura/100)*($altura/100)); //Calcula a idade $date = new DateTime($data); $interval = $date->diff( new DateTime( ) ); echo "Nome: $nome<br />"; echo "Data de Nascimento: $data<br/ >"; echo "Sexo: $sexo<br />"; echo "Peso(kg): $peso<br />"; echo "Altura(cm): $altura<br />"; echo "------------------------------<br />"; echo "RESULTADO<br />"; echo "------------------------------<br />"; echo $interval->format( "Idade: %Y anos %m meses %d dias<br />"); echo "Seu IMC é: $imc<br />"; //Calcula o IMC if($sexo == "Masculino"){ if ($imc<20.7){ echo "Situação: Abaixo do peso"; } elseif ($imc>=20.7 && $imc<26.4) { echo "Situação: Peso normal"; }elseif ($imc>=26.4 && $imc<27.8) { echo "Situação: Marginalmente acima do peso"; }elseif ($imc>=27.8 && $imc<31.1) { echo "Situação: Acima do peso ideal"; }else{ echo "Situação: Obeso"; } }else{ if ($imc<19.1) { echo "Situação: Abaixo do peso"; }elseif ($imc>=19.1 && $imc<25.8){ echo "Situação: Peso normal"; }elseif ($imc>=25.8 && $imc<27.3){ echo "Situação: Marginalmente acima do peso"; }elseif ($imc>=27.3 && $imc<32.3){ echo "Situação: Acima do peso ideal"; }else{ echo "Situação: Obesa"; } } ?> Quando coloco por exemplo a data: 01/01/1985 ele retorna o valor correto: Idade: 30 anos 9 meses 8 dias No entanto quando coloco 27/09/1985 ele retorna o seguinte erro: Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (27/09/1984) at position 0 (2): Unexpected character' in C:\xampp\htdocs\projeto\ModuloIII\Unidade III\IMC\imc.php:12 Stack trace: #0 C:\xampp\htdocs\projeto\ModuloIII\Unidade III\IMC\imc.php(12): DateTime->__construct('27/09/1984') #1 {main} thrown in C:\xampp\htdocs\projeto\ModuloIII\Unidade III\IMC\imc.php on line 12 Alguém pode me ajudar????
×
×
  • Criar Novo...