Well, here's a simple PHP function to do it:
function birthdayFromAge($years=null, $months=null, $days=null)
{
if($years===null || $months===null || $days===null)
return false;
$date['month'] = '';
$date['day'] = '';
$date['year'] = '';
$date['year'] = date('Y')-$years;
$month = date('n')-$months;
if($month < 1)
{
$month += 12;
}
$date['month'] = $month;
$day = date('j')-$days;
if($day < 1)
{
$last_month = (date('m')-1 < 1) ? date('m')+11 : date('m')-1;
$last_year = ($last_month > date('m')) ? date('Y')-1 : date('Y');
$last_month_max = date('t', mktime(0,0,0, $last_month, 1, $last_year));
$day += $last_month_max;
}
$date['day'] = $day;
return $date;
}
$date = birthdayFromAge(23, 9, 10);
echo '23 years, 9 months, 10 days: ' . $date['month'] . ' / ' . $date['day'] . ' / ' . $date['year'] . '<br />';
$date = birthdayFromAge(15, 0, 18);
echo '15 years, 0 months, 18 days: ' . $date['month'] . ' / ' . $date['day'] . ' / ' . $date['year'] . '<br />';
EDIT: Bah!! Foiled again!! Stupid me took time to "bug test" my function 🙁