Ir para conteúdo
Fórum Script Brasil

daviaer

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que daviaer postou

  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...