tags:

views:

167

answers:

1

I want to calculate person's age in months plus days using date of birth (example: 1986-08-23).

For example:

0 months and 25 days old.
5 months and 20 days old.
150 months and 4 days old.
285 months and 30 days old.

Any Idea? Thanks.

+13  A: 
$date = new DateTime('1990-10-13');
$diff = $date->diff(new DateTime());
printf("%d months and %d days old", $diff->y*12 + $diff->m, $diff->d);

Note that DateTime::diff() requires PHP 5.3.0 or higher.

Daniel Egeberg
Will this be accurate WRT leap years?
Piskvor
@Piskvor Yes, it will.
Daniel Egeberg
@Daniel Egeberg: Thank you for the clarification.
Piskvor