Я ищу способ рассчитать возраст человека, учитывая их DOB в формате dd/mm/yyyy.
Я использовал следующую функцию, которая работала нормально в течение нескольких месяцев, пока какой-то глюк не заставил цикл while никогда не кончать и не остановил весь сайт. Поскольку почти 100 000 DOB, проходящих эту функцию несколько раз в день, трудно определить, что вызывает это.
Есть ли у кого-нибудь более надежный способ расчета возраста?
//replace / with - so strtotime works
$dob = strtotime(str_replace("/","-",$birthdayDate));
$tdate = time();
$age = 0;
while( $tdate > $dob = strtotime('+1 year', $dob))
{
++$age;
}
return $age;
EDIT: эта функция, похоже, работает нормально некоторое время, но возвращает "40" для DOB 14/09/1986
return floor((time() - strtotime($birthdayDate))/31556926);