2010-07-24 17 views
7

He buscado esto pero no he encontrado una función perfecta en php. Quiero obtener una función php que calcule la edad de la persona solo en meses.PHP: Cómo calcular la edad de la persona en meses

Por ejemplo:

less then one month old. 
5 months old. 
340 months old. 

Gracias

+0

Una buena respuesta el 2010-03-01 responderá '1' si la persona nace el 2010-01-31, y '0' si la persona nace el 2010-02-02. –

Respuesta

13

El uso de PHP DateInterval (disponible en 5.3.0), que es bastante fácil:

$birthday = new DateTime('1990-10-13'); 
$diff = $birthday->diff(new DateTime()); 
$months = $diff->format('%m') + 12 * $diff->format('%y'); 

ahora $months contendrá el número de meses que he vivido.

+0

¿Existe alguna razón específica para usar $ diff-> format() para acceder directamente a las propiedades y y m de DateInterval? – kander

+0

No. Puedes hacer eso también si lo deseas. –

+0

No veo ninguna mención de esas propiedades en la documentación. Usar las características no documentadas generalmente es una mala idea ya que es más probable que cambien en el futuro. – Ruben

-1

Si quieres años o meses, en los que la persona entradas de sus edades, ya $years

$month = $years*12; 

Si desea meses a años, donde las persona ingresa su edad como $months

$year = $months/12 
+0

Esto no es completamente exacto, teniendo en cuenta el hecho de que los meses no están distribuidos de manera uniforme (28, 29, 30, 31 días por mes). – kander

+0

Además, si una persona nace en enero y ahora es julio, el cálculo sería incorrecto en 7 meses. –

+0

no si asume $ años se pueden ingresar como un decimal ... ej. 1.5 años, etc. – ina

1
$birthday = new DateTime("June 21st 1986"); 
$diff = $birthday->diff(new DateTime()); 
$months = ($diff->y * 12) + $diff->m; 

var_dump($months); 

¿Algo en esta línea?

Cuestiones relacionadas