[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вычесление возроста
Страницы: 1, 2, 3
skaj
Цитата (alexbel2404 @ 28.04.2013 - 21:58)
http://www.php.net/manual/ru/datetime.diff.php

спасибо, но у меня хостинг с php 4

_____________
www.skaj.ru
Rand
Логика не верна. Что если я родился в 1969 году?

Есть куча способов для вычисления возраста:
http://stackoverflow.com/questions/3776682/php-calculate-age
Цитата
хостинг с php 4

Разве такие ещё существуют? Соболезную.
skaj
Цитата (Rand @ 28.04.2013 - 22:09)
Логика не верна. Что если я родился в 1969 году?

пожалуста 01.01.1969 -U (-31546800). понимаете, эти даты проще хранить в бд, да и работать с ними проще

_____________
www.skaj.ru
Rand
А теперь внимание. Минус на минус дает плюс!
$time = date('U') - (-31546800);
echo date('Y', $time);

Вычли из текущей даты дату рождения и получили текущую дату + года предшествующие 1970.
skaj
при вычитании этот минус отнимается(вырезается).

_____________
www.skaj.ru
Rand
Что-то я в коде этого не вижу. Я вам дал кучу примеров, как реализовывать правильно, в том числе и с timestamp, что вам ещё нужно?
skaj
вы мне ничего не дали, скорее я обогатился сам

_____________
www.skaj.ru
skaj
стоящего ответа я пока не получил

_____________
www.skaj.ru
Rand
Цитата (Rand @ 29.04.2013 - 00:09)
Есть куча способов для вычисления возраста:
http://stackoverflow.com/questions/3776682/php-calculate-age

Что здесь не так?
skaj
Цитата (Rand @ 28.04.2013 - 22:42)

Что здесь не так?

повторюсь, мне не подходит php младше 4.7

_____________
www.skaj.ru
skaj
есть ответ на такой вопрос, как фарумчанин, как закрыть тему, если ты создатель ее

_____________
www.skaj.ru
arlamar
Вот тут все вычисляют разницу в милисекундах, а как потом считать то кол-во лет? как учитывать високосный год? Зачем геморрой-то?
Так не проще разве? функция на жс, $ сами поставите
function age(bDay, bMonth, bYear, cDay, cMonth, cYear) {
if((cMonth >= bMonth && cDay > bDay) || (cMonth > bMonth)) {
return (cYear - bYear);
} else {
return (cYear - bYear - 1);
}
}
Я сонный уже, так что не пинайте если я что-то не правильно понял.
skaj
функция date() сама учитывает высокостный год и подобные неурядици

_____________
www.skaj.ru
arlamar
упс, только изменить надо cDay > bDay на cDay >= bDay
Это я делал для проекта где в день рождения надо было считать на год меньше.
inpost
У тебя есть нынешняя дата и дата рождения в адекватном формате: Y-m-d H:i:s
Теперь выбрал только YEAR(), сделал разницу вычитания, получил возраст. Осталось сравнение добавить месяц+день, то есть если в этом году месяц+день не наступили рождения, то от результата отнять единицу.

Кстати, возраст пишется так smile.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.