Как узнать возраст по дате рождения в PHP
Не так давно мне на e-mail прислали письмо с просьбой написать скрипт, который узнаёт возраст по дате рождения в PHP. Скрипт очень простой, поэтому я быстро его написал и отправил, но я решил опубликовать его ещё и здесь. Возможно, кому-то он будет также полезен.
Как узнать возраст по дате рождения в PHP? Входные параметры: число, месяц и год рождения. Выходные параметры: возраст.
Немного прокомментирую данный код. Функция date() возвращает текущую дату (если не указан второй параметр, а в нашем примере только один параметр). Итак, мы проверяем: был ли в текущем году у человека день рождения?. Если ещё дня рождения в этом году не было, значит, из текущего года вычитаем год рождения и ещё 1. Если же день рождения уже был (или он сегодня), то просто из текущего года вычитаем год рождения.
Вот такой простой и полезный скрипт. Пользуйтесь!
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 9 ):
Нет, условие написано правильно. То есть если месяц рождения больше текущего (ещё не было дня рождения) или месяц рождения совпадает с текущим, но при этом число рождения меньше (!) текущего, то значит надо вычесть ещё 1.
Хе, ну тогда получается, что если я родился например 16.06.1990, то мне сегодня (17-го числа) все еще пока 20 лет, а если родился 18.06.1990, то сегодня мне 21, а день рождения-то только завтра! Врет система, надо наоборот. Если число рождения БОЛЬШЕ текущего, то дня рождения еще не было.
Да, действительно. Не доглядел, самое интересное, что скопировал правильный вариант, а когда заменял > на > случайно написал Ответить
А как сделать событие какое-нибудь, ну например: у пользователя день рождения 20 апреля, и на главной странице, или еще какой-нибудь, в этот же день объявили это, или как хотя бы сообщить администратору(себе), что у какого-то пользователя день рождения?
Можно создать скрипт, который запускать раз в сутки через cron. В этом скрипте проверять, у кого день рождения, а потом отправлять им поздравления или уведомления администратору.
Здравствуйте,у меня к вам маленький вопросик,я себе на сайт все скопировал,поставил свои переменные,а оно не работает,подскажите пожалуйста в чем причина!?
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Показать сколько полных лет по дате, например: 8.6.1979
Привет, как сделать такое подскажите!
В переменную $dates может приходить 2 вида даты
так
8.6.1979 // число, месяц, год
и так
8.6 // число, месяц
так вот если в переменной дата вида 8.6.1979
то нужно узнать возраст
и дать результат
38 лет
если в переменной $dates
такая дата
8.6
то вообще ничего не выводить.
Добавлено через 28 минут
помогите поправить, если в переменной дата вида 10.1.1979
то все гуд, показывает Полных лет: 39
но если дата
$dates = ‘10.1’;
то вывод
показывает Полных лет: 00
как сделать чтобы в данной ситуации ничего не выводило, и так же само если переменная вообще пустая.
Помощь в написании контрольных, курсовых и дипломных работ здесь.

вводится текущая дата и дата рождения человека(число,месяц,год),определить количество полных лет
Определение полных лет,месяцев и дней по введённой с клавиатуры дате.
Требуется составить программу,определяющую число полных лет, месяцев и дней на текущий момент по.
Определить, сколько полных лет пользователю, если сегодня 16.02.2012
С клавиатуры вводится дата рождения в виде трех чисел (a – день, b – месяц, с – год). Определить.

В поле ввода вводится дата. Посчитать сколько полных лет, месяцев и дней отделяют введенную дату от.
В PHP вычислить возраст
Я ищу способ рассчитать возраст человека, учитывая их DOB в формате dd/mm / yyyy.
я использовал следующую функцию, которая работала нормально в течение нескольких месяцев, пока какой-то сбой не заставил цикл while никогда не заканчиваться и не остановил весь сайт. Поскольку через эту функцию несколько раз в день проходит почти 100 000 Добов, трудно определить, что было причиной этого.
есть ли у кого-нибудь более надежный способ расчета возраст?
EDIT: эта функция, кажется, работает нормально некоторое время, но возвращает «40» для DOB 14/09/1986
30 ответов
Это прекрасно работает.
начиная с PHP 5.3.0, вы можете использовать удобный DateTime::createFromFormat чтобы ваша дата не была ошибочно принята за и DateInterval класса (через DateTime::diff ), чтобы получить количество лет между настоящим моментом и целевой датой.
Я использую дату/время для этого:
простой метод расчета возраста от dob:
Я считаю, что это работает и просто.
вычесть из 1970, потому что strtotime вычисляет время от 1970-01-01 (http://php.net/manual/en/function.strtotime.php)
// Возраст Калькулятор
Если вы хотите вычислить возраст использования dob, вы также можете использовать эту функцию. Он использует объект DateTime.
подумал, что я бы бросил это здесь, так как это, кажется, самая популярная форма этого вопроса.
Я провел 100-летнее сравнение 3 самых популярных типов возрастных функций, которые я мог найти для PHP, и опубликовал свои результаты (а также функции) в мой блог.
найдена небольшая проблема с тестом, и еще одна проблема с 2-м методом! Обновление в блоге! На данный момент я бы отметил, что 2-й метод по-прежнему самый популярный, который я нахожу в интернете, и все же я нахожу самые неточности!
мои предложения после моего 100-летнего обзора:
если вы хотите что-то более вытянутое, чтобы вы могли включать такие случаи, как дни рождения и такие:
но если вы просто хотите знать возраст и ничего более, то:

