![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
Здравствуйте!
Вобщем задался целью вычислить возраст человека, зная его дату рождения. Формат даты в БД: 2010-04-18 Ну вот сам написал длинющих код с кучей условий, а потом погуглил и нашел вот какой вариант решения этой проблемы:
$date_b - дата рождения человека Мне не понятна запись: (intval($month.$day)-intval(date("m").date("d"))?1:0), кто то может объяснить??? Заранее спасибо!!! |
|||
|
||||
| SickFxck |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
Код неправильный. Там пропущено условие "> 0". Переписывается проще:
Разница в возрасте определяется не только годами. $month и $day должны быть с leading zeros. Это сообщение отредактировал(а) SickFxck - 19.4.2010, 07:38 |
|||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
SickFxck, Спасибо!
Да когда я вчера тестил работу того кода, то не мог понять почему он не правильно вычислял возраст на некоторых случаях. SickFxck, Ваш код работает правильно, но все же хотелось узнать как в том ПЕРВОМ случае происходит обработка того выражения. |
|||
|
||||
| SickFxck |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
||||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
SickFxck, ну по Вашему код я понял, что если условие TRUE, то возвращется 1 (получается, что ДР еще не было) и отнимается от разности: date("Y") - $year, а если ложь, то получается, что ДР уже был и возвращается 0 и возраст вычисляется только разностью годов.
SickFxck, правильно я понял??? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 12 Всего: 211 |
kuller
Если данные хранятся в базе то не вижу смысла писать это на PHP, возраст можно получать из базы SQL запросом. База данных предоставляет удобные функции для работы с датой, зачем делать это на PHP?
это для MySQL. Это сообщение отредактировал(а) azesmcar - 20.4.2010, 11:27 |
|||
|
||||
| SickFxck |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
http://dev.mysql.com/doc/refman/5.0/en/dat...lculations.html
Добавлено через 6 минут и 14 секунд azesmcar, ты пренебрегаешь високосными годами. То есть в районе самого дня рождения могут быть ошибки. |
|||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
azesmcar, Если често, то я даже не слышал о такой функции получения возраста из БД. azesmcar, спасибо, буду пробывать! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |