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<?php class PersonaEdad
{
private $_fechaNacimiento;
public function __construct($fechaNacimiento)
{
$this->_fechaNacimiento = $fechaNacimiento;
}
public function decirEdad()
{
return $this->_calcularEdad();
}
private function _calcularEdad()
{
list($dia, $mes, $anio) = explode("/", $this->_fechaNacimiento
); // si el mes es el mismo pero el dia inferior aun
// no ha cumplido años, le quitaremos un año al actual
if (($mes == $mesActual) && ($dia > $diaActual))
{
$anioActual = $anioActual - 1;
}
// si el mes es superior al actual tampoco habra
// cumplido años, por eso le quitamos un año al actual
if ($mes > $mesActual)
{
$anioActual = $anioActual - 1;
}
// ya no habria mas condiciones, ahora simplemente
// restamos los años y mostramos el resultado como su edad
$edad = $anioActual - $anio;
return $edad;
}
}
//modo de uso.
$persona = new PersonaEdad('16/11/1990');
echo $persona->decirEdad();