PHP - calcular edad en años y meses

   
Vista:

calcular edad en años y meses

Publicado por Rodrigo (16 intervenciones) el 01/08/2016 01:52:33
Hola Amigos, nuevamente requiriendo un poco de ayuda.
Tengo este código
1
2
3
4
5
6
7
8
9
10
11
<?php
function calcular_edad($fecha){
$dias = explode("-", $fecha, 3);
$dias = mktime(0,0,0,$dias[1],$dias[0],$dias[2]);
$edad = (int)((time()-$dias)/31556926 );
return $edad;
}?>
 
<?php
echo calcular_edad('1989-10-01');
?> años

y me da como resultado la cantidad de años de una persona, pero no se como modificarlo para que de como resultado los años y los meses.
Leyendo entendí que hay que transformar la fecha a un formato para poder trabajarlo (multiplicarlo/dividirlo etc) lo que no entiendo del código es como hacerlo, si alguien pudiera explicarme para así yo poder hacerlo.
De ante manos gracias, les cuento que yo no soy programador, ni ingeniero, solo soy una persona que lleva un par de semanas leyendo y usando la lógica para aprender y entender las funciones php. Lo siento si mi consulta es muy basica.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de PHP
- Código fuente de PHP
- Cursos de PHP
- Temas de PHP
- Chat de PHP
información
Códigos de PHP
- Conversión de imágenes
- Comprobar URL
- index.php
Imágen de perfil de kip

calcular edad en años y meses

Publicado por kip (571 intervenciones) el 01/08/2016 02:38:53
Hola, hay una funcion que provee PHP que te ofrece obtener la diferencia entre dos fechas, creo que aquella te serviria mejor, aqui el codigo que necesitas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
function calcular_edad($fecha){
$fecha_nac = new DateTime(date('Y/m/d',strtotime($fecha))); // Creo un objeto DateTime de la fecha ingresada
$fecha_hoy =  new DateTime(date('Y/m/d',time())); // Creo un objeto DateTime de la fecha de hoy
$edad = date_diff($fecha_hoy,$fecha_nac); // La funcion ayuda a calcular la diferencia, esto seria un objeto
return $edad;
}
 
 
$edad = calcular_edad('1999-12-31');
echo "Tiene {$edad->format('%Y')} años y {$edad->format('%m')} meses"; // Aplicamos un formato al objeto resultante de la funcion
 
?>

La funcion principal es date_diff, esta calcula la diferencia y te retorna un objeto DateTime.
http://php.net/manual/es/datetime.diff.php

Luego de obtener el objeto, aplicas un formato a este, otra funcion que te facilita PHP.
http://php.net/manual/es/datetime.format.php

Podrias hacerlo de alguna otra forma, pero es la que se me ocurre ahora, espero te sirva.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

calcular edad en años y meses

Publicado por Rodrigo (16 intervenciones) el 01/08/2016 03:02:31
Muchas Gracias!!!, tu codigo funciona perfecto, voy a leer sobre esas funciones y voy a ver si logro hacerla yo.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar