Calcular la edad de una persona usando jQuery y PHP

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: 11827 - Today Page Visits: 5

Deja una respuesta