PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Простенький скриптик вполне удобный в эксплуатации для расчёт возраста.
Поиск в теме | Версия для печати
Friendly Man
Отправлено: 21 Марта, 2010 - 14:42:56
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009
Откуда: Россия - Армения, Москва-Ереван
Помог: 0 раз(а)
Если Вам нужно расщитать возраст пользователя или ещё кого нибудь Вам сюда:
Жду комментариев, нарицаний и похвал
PHP:
скопировать код в буфер обмена
//Функция для расчёта возраста 20.03.2010
// Begin function
function age( $day , $month , $year ) {
$month_age = date ( "m" ) - $month ; if ( $month_age < 0) {
$year_age = ( date ( "Y" ) - $year ) - 1 ; }
elseif ( $month_age == 0) {
if ( $day_age >= 0) {
$year_age = date ( "Y" ) - $year ; }
else { $year_age = ( date ( "Y" ) - $year ) - 1 ; } }
else { $year_age = date ( "Y" ) - $year ; } $age =& $year_age ;
return $age ;
}
else { return $report = "неверный формат данных." ; }
}
// End function
(Отредактировано автором: 21 Марта, 2010 - 14:44:05)
-----ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
kochan10
Отправлено: 21 Марта, 2010 - 14:54:40
Гость
Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Champion пишет: (int) ((time() - mktime(0,0,0, $m, $d, $y)) / 365.25) думаешь сильно хуже?
не очень работает. не правильно выдал
Friendly Man
Отправлено: 21 Марта, 2010 - 14:55:59
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009
Откуда: Россия - Армения, Москва-Ереван
Помог: 0 раз(а)
Friendly Man пишет: Champion пишет: (int) ((time() - mktime(0,0,0, $m, $d, $y)) / 365.25) думаешь сильно хуже?
А можешь прокомментировать?
Думаю это не сложно.
-----ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
kochan10
Отправлено: 21 Марта, 2010 - 14:57:43
Гость
Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Friendly Man пишет: Champion пишет: (int) ((time() - mktime(0,0,0, $m, $d, $y)) / 365.25) думаешь сильно хуже?
А можешь прокомментировать?
текущее время минус дата рождения делить на кол-во дней в году с учётом високосных. верно?
Champion
Отправлено: 21 Марта, 2010 - 14:59:27
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008
Откуда: Москва
Помог: 57 раз(а)
Friendly Man пишет: А можешь прокомментировать?
Я исправил. Поделить на всё остальное забыл.
time() - время (unixtime) в секундах, которое сейчас.
mktime(...) - время в секундах в дату рождения
Находим разницу в секундах, переводим в годы, отбрасываем дробную часть.
Friendly Man
Отправлено: 21 Марта, 2010 - 15:00:56
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009
Откуда: Россия - Армения, Москва-Ереван
Помог: 0 раз(а)
kochan10 пишет: Friendly Man пишет: Champion пишет: (int) ((time() - mktime(0,0,0, $m, $d, $y)) / 365.25) думаешь сильно хуже?
А можешь прокомментировать?
текущее время минус дата рождения делить на кол-во дней в году с учётом високосных. верно?
Не совсем вижу смысл указания точного времени рождения. По причине нецелесообразности
Зачем указывать время?
-----ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
kochan10
Отправлено: 21 Марта, 2010 - 15:06:56
Гость
Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
в принципе классно)) одной строкой проще чем функцией. но всё равно функция тоже хорошо. молодец автор. а для чемпиона это раз плюнуть)))
(Добавление)
Friendly Man пишет:
выдал результат - 2335146 - где тут возраст?
тебе же говорят, бери исправленную функцию. чемпион поправил её уже. гляди его пос первый
Friendly Man
Отправлено: 21 Марта, 2010 - 15:27:38
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009
Откуда: Россия - Армения, Москва-Ереван
Помог: 0 раз(а)
kochan10 пишет: в принципе классно)) одной строкой проще чем функцией. но всё равно функция тоже хорошо. молодец автор. а для чемпиона это раз плюнуть)))
(Добавление)
Friendly Man пишет:
выдал результат - 2335146 - где тут возраст?
тебе же говорят, бери исправленную функцию. чемпион поправил её уже. гляди его пос первый
(60 * 60 * 24 * 365.25) - а это что значит?
(Добавление)
Champion приятель попробуй в свой вариант вставить дату 1919 и посмотри на результат.
-----ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
Champion
Отправлено: 21 Марта, 2010 - 16:01:15
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008
Откуда: Москва
Помог: 57 раз(а)
Friendly Man пишет: Champion приятель попробуй в свой вариант вставить дату 1919 и посмотри на результат.
Ну нормально всё) И 1903 нормально. Если тебе надо 1700й год, тогда mktime конечно вернет false, но на такие случаи одна строчка кода превратится в 3.
Friendly Man пишет: (60 * 60 * 24 * 365.25)
секудны в год превращаются.
jfr
Отправлено: 21 Марта, 2010 - 18:31:44
Посетитель
Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010
Откуда: Таджикистан, Худжанд
Помог: 0 раз(а)
[+]
вот таким образом тоже можно:
PHP:
скопировать код в буфер обмена
<?PHP
function age( $day , $month , $year )
{
if ( $current_month > $month or $current_month == $month && $current_day >= $day )
{ $age = $current_year - $year ; }
else { $age = $current_year - $year - 1 ; }
echo $age ;
}
age( 26, 08, 1985) ;
?>
(Отредактировано автором: 21 Марта, 2010 - 18:34:10)
Поиск в теме | Версия для печати
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Пользовательские функции »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB