Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/02/2011, 18:13
principianteZF
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: fechas, clase datetime, diferencia entre fechas

Fernis, ademas de la solución que te dio masterpuppet, te dejo una clase que hace lo mismo y funciona bien.
Código PHP:
Ver original
  1. <?php class PersonaEdad
  2. {
  3.     private $_fechaNacimiento;
  4.    
  5.     public function __construct($fechaNacimiento)
  6.     {
  7.         $this->_fechaNacimiento = $fechaNacimiento;
  8.         }
  9.         public function decirEdad()
  10.         {
  11.             return $this->_calcularEdad();
  12.         }
  13.         private function _calcularEdad()
  14.         {
  15.         $diaActual = date('d');
  16.         $mesActual= date('n');
  17.         $anioActual = date('Y');
  18.         list($dia, $mes, $anio) = explode("/", $this->_fechaNacimiento);
  19.         // si el mes es el mismo pero el dia inferior aun  
  20.         // no ha cumplido años, le quitaremos un año al actual
  21.  
  22.         if (($mes == $mesActual) && ($dia > $diaActual))
  23.             {
  24.             $anioActual = $anioActual - 1;
  25.  
  26.             }
  27.             // si el mes es superior al actual tampoco habra
  28.             // cumplido años, por eso le quitamos un año al actual
  29.             if ($mes > $mesActual)
  30.                 {
  31.                 $anioActual = $anioActual - 1;
  32.  
  33.                 }
  34.             // ya no habria mas condiciones, ahora simplemente
  35.             // restamos los años y mostramos el resultado como su edad
  36.             $edad = $anioActual - $anio;
  37.             return $edad;
  38.  
  39.             }
  40.  
  41.  
  42.  
  43.     }
  44.  
  45. //modo de uso.
  46.     $persona = new PersonaEdad('16/11/1990');
  47.     echo $persona->decirEdad();