Lo más simple que he visto es esta función que os dejo aquí, que simplemente coge primero la parte de meses y días de la fecha actual y la de nacimiento y mira si ya hemos pasado o todavía no. Después resta la parte de años de ambas fechas y finalmente ajusta.
function getAge( $birthdate ){ $adjust = ( date ( "md" ) >= date ( "md" , strtotime ( $birthdate ))) ? 0 : -1; // Si aún no hemos llegado al día y mes en este año restamos 1 $years = date ( "Y" ) - date ( "Y" , strtotime ( $birthdate )); // Calculamos el número de años return $years + $adjust ; // Sumamos la diferencia de años más el ajuste } |
Se puede complicar más haciendo que el formato de entrada se pueda configurar pero lo hemos puesto en formato inglés YYYY-MM-DD. Los resultados son los siguientes:
// Hoy es 2 de diciembre de 2014 echo getAge( "1919-02-21" ); // devuelve 95 echo getAge( "1952-12-07" ); // devuelve 61 |
Espero que os sirva.
No hay comentarios:
Publicar un comentario