En este código se una un formulario HTML con un campo fecha donde la persona escribe su fecha de nacimiento en el formato dia/mes/año al dar clic en el botón Consultar.
<h1>Calculo de Edad</h1> <form id="form1" name="form1" method="post" action=""> <label for="textfield">Fecha de Nacimiento</label> <input type="text" name="fecha" id="fecha" /> Formato (dia/mes/año) ejemp: 16/01/1980 <input type="button" id="consultar" value="Consultar" /> </form>
El evento clic del botón se maneja con JavaScript usando jQuery
<script>
$( document ).ready(function() {
$("#consultar").click(function(){
fecha = $("#fecha").val();
$.get( "calcular.php", {fecha: fecha}, function( data ) {
$( "#edad" ).html( data );
});
});
});
</script>
Se usa $.get para el envió de la fecha a PHP, este se recibe y se hace el proceso del calculo, el código es el siguiente:
<?php
//Recibimos los datos enviado por el formulario
//si se recibe la fecha se devuelve la fecha sino se devuelve vacio
$fecha = isset($_GET['fecha']) ? $_GET['fecha'] : "" ;
$errores = "";
if (!$fecha){
echo "Error fecha no vacia";
exit();
}
$pfecha = explode('/', $fecha);
if (count($pfecha)<2){
echo "Error fecha no vacia";
exit(); //detenemos la ejecución
}
$fechavalida = checkdate($pfecha[1], $pfecha[0], $pfecha[2]);
if ($fechavalida == false){
echo "Error fecha no válida";
exit();
}
$edad = 0;
//Fecha actual
$dia=date("d");
$mes=date("m");
$anio=date("Y");
//fecha de nacimiento
$dia_nc = $pfecha[0];
$mes_nc = $pfecha[1];
$anio_nc = $pfecha[2];
//restamos para calcular la edad parcial
$edad = $anio - $anio_nc;
//le restamos un años si el mes es igual al mes de su cumpleaños pero su dia no
//ejemplo si cumple en enero 26 y la fecha actual es enero 25 hay que retar por que no ha cumplido
if (($mes_nc == $mes) && ($dia_nc > $dia))
$edad = ($edad - 1);
//en este caso si todavia no es el mes de su cumple tambien se resta
if ($mes_nc > $mes)
$edad = ($edad - 1);
if (!$errores)
echo $edad;
else
echo $errores;
?>
Código para descargar Aquí
Contraseña: programaresfacil.co
Total Page Visits: 12762 - Today Page Visits: 3

