Alexanevsky
@Alexanevsky
Любительская web-разработка

Как посчитать даты (вычислить возраст) в PHP (даты хранятся в Unix Time)?

Необходимо высчитать возраст исходя из указанной даты рождения. Информация о дате рождения содержится в Unix Time.

В PHP не силён, только-только начал править имеющийся у меня код, чтобы получить то, что мне нужно.

Просто для понимания приведу пример:
$tpl->set( '{birthday}', langdate( "D M Y", $row['birthday'] ) );

Выводит в доступный для CMS тег {birthday} дату рождения, т.е. берёт Unix Time значение из строки birthday и преобразовывает в человекопонятный вид Date Month Year.

Для вывода возраста хочу создать доступный для CMS тег {age} и через него выводить возраст. Предполагаю, что в PHP должно выглядеть как-то так:
$tpl->set( '{age}', текущая дата - $row['birthday'] ) );


А вот как это сделать - ни малейшего понятия...
  • Вопрос задан
  • 6924 просмотра
Решения вопроса 1
saksmt
@saksmt
PHP-developer, Backend
/** @var \DateTime $dateBirth */
$diff = (new \DateTime())->diff($dateBirth);
$formatted = sprintf("%d лет", $diff->y);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@iSensetivity
бухгалтер, програміст-самоук
function calculate_age($birthday) {
$birthday_timestamp = strtotime($birthday);
$age = date('Y') - date('Y', $birthday_timestamp);
if (date('md', $birthday_timestamp) > date('md')) {
$age--;
}
return $age;
}

echo calculate_age('1990-01-01');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы