Я использую приведенную ниже функцию для расчета возраста (в годах) людей по датам рождения (в европейском формате ДД / ММ / ГГГГ), которые хранятся в виде текста в расширенных пользовательских полях Wordpress
function get_age($birthDate_old) {
$birthDate = ($birthDate_old);
return date_diff(new DateTime($birthDate), new DateTime('today'))->y;
}
В большинстве случаев работает нормально, но в некоторых случаях я получил ошибку ниже:
Fatal error: Uncaught Exception: DateTime::__construct(): Failed to parse time string (26/01/1958) at position 0 (2): Unexpected character in /home/XXXX/functions.php:99 Stack trace: #0 /home/XXXX/functions.php(99): DateTime->__construct('26/01/1958') #1 /home/XXXX/single.php(69): get_age('26/01/1958') #2 /home/XXX/wp-includes/template-loader.php(98): include('/home/XXX/...') #3 /home/XXX/wp-blog-header.php(19): require_once('/home/XXX/...') #4 /home/XXX/index.php(17): require('/home/monmaire/...') #5 {main} thrown in /home/XXXX/functions.php on line 99
Пример данных, которые отлично работают: $ age = get_age ($ birthday);
Для значения $ birthday = 05.04.1946 это работает нормально, но для значения $ birthday = 26/01/1958 я получаю ошибку выше. Я не берусь за то, почему, поскольку данные мне кажутся одинаковыми в двух случаях.
Есть ли у вас какие-либо понятия, почему?
Спасибо. С уважением.