- preg_match: documentation ( source)
<?php
function calculate_birth_year($age, $day_month_string)
{
$now = new DateTime("now", new DateTimeZone('America/New_York'));
if (preg_match('#^([0-9]+) ([a-z]+)$#', $day_month_string))
{
$dt = new DateTime($day_month_string, new DateTimeZone('America/New_York'));
if ($dt > $now) {
++$age;
}
return $dt->modify("$age years ago")->format('Y');
}
else
return false;
}
echo calculate_birth_year('34', '7 dec');