Я использую следующую функцию для расчета возраста с данной даты рождения, но не показывает правильную разницу, если используется день високосного года, то есть 29. Пожалуйста, помогите мне исправить этот код.Возрастная ошибка високосного года в php
<?php
function getAbsAge($birthday)
{
list($year,$month,$day) = explode("-", $birthday);
$year_diff = date("Y") - $year;
$month_diff = date("m") - $month;
$day_diff = date("d") - $day;
if ($day_diff < 0 || $month_diff < 0)
{
$year_diff--;
}
if ($year_diff == 0)
{
$interval = date_diff(date_create(), date_create($birthday));
$months = $interval->format("%M");
$days = $interval->format("%d");
if ($months > 0)
{
return $interval->format("%M Months %d Days");
}
else if ($months == 0 && $days > 1)
{
return $interval->format("%d Days");
}
else
{
return $interval->format("%d Day");
}
}
else if ($year_diff == 1)
{
return "$year_diff Year";
}
else if ($year_diff > 1)
{
return "$year_diff Years";
}
}
echo getAbsAge("2012-02-29")
?>
Также, если кто-нибудь может предложить лучший код, пожалуйста, обновите его.
Мне нужно найти дату рождения в месяцах и днях, если человек меньше 1 года.
У меня есть последняя версия версии 5.0 на моем сервере.
С 2012-02-29, его возвращение 2 года, тогда как это должно быть 3 года. Пожалуйста помоги.
Может быть, вы найдете [это] (http://stackoverflow.com/questions/676824/how-to-calculate-the -difference-between-two-date-using-php) helpfpul. – mrun