У меня есть следующие столбцы в моей таблице: birth_year, birth_month, birth_day
пример данных из таблицы
birth_year birth_month birth_day
1996 April 1
Мне нужно только получить возраст пользователя.
Это не обязательно быть точным. Мне просто нужно вычитать год сегодня и его/ее birth_year
пример:
его birth_year - 1996 год
и сегодняшний день - 2015 год
if($row = mysqli_fetch_assoc($query_run)
{
$birth_day = $row['birth_year']; //data from the database which equals to 1996
$today = date("Y"); //year today
$age = $today - $birth_day; //age of this user
echo $age; //this should output 19
}
Моя проблема - переменная $age
из вышеперечисленного, которая возвращает пустое или нулевое значение.
вот источники, которые могут быть похожи на мой вопрос:
Разница между моим вопросом и тем, что я не могу следовать за форматом DateTime
потому что моя форма регистрации выглядит так.
Попробуй использовать
$age = intval( $today ) - intval( $birth_day );
Также проверьте, возвращает ли ваш запрос mysql то, что вы ожидаете (вы не предоставили его, поэтому его трудно проверить).
попробуйте это с datetime:
if($row = mysqli_fetch_assoc($query_run){
$birth_day = $row['birth_year'];
$bday = new DateTime($birth_day);
$today = new DateTime(date("Y"));
$age = $today->diff($bday);
echo $age->y;
}
datetime
илиtimestamp
.echo
ИНГ переменные, используйтеvar_dump
, так что вы можете увидеть его тип. Вы, вероятно, используете арифметику со строкой ..