Страница 1 из 1

Сколько лет по дате рождения

Добавлено: 23 авг 2009, 02:15
ironkiss
Помогите кто-нибудь со скриптом показывающий возраст. (только не надо писать, что в профиле и так показывается возраст, я знаю.)

Т.е. есть дата, сегодня: $DATE$, вида 23.08.2009
есть дата рождения: $FILTER1$.$FILTER2$.$FILTER3$, вида 1.05.1965

как сделать так, что бы показывало разницу в годах, но учётом дня и месяца.
Пробовал с .getTime() — получилось, правда с ошибкой, не учитывались високосные года, проблема решаема, но тут же другая,
как я вычитал метод .getTime() считает с 1970 года, что меня не устраивает (см. пример)...

Гугл рулит — но всё что мне удалось найти было на пхп (облом), правда нашёл одну тему на каком-то импортном форуме, по названию было что-то похоже на то, что мне нужно, но блин, гугл транслит не фига не рулит, а коды предложенные в той теме были раскиданы по частям, которые собрать воедино так и не удалось.

Re: Сколько лет по дате рождения

Добавлено: 23 авг 2009, 12:11
XxMARSxX
.getTime() самый оптимальный вариант...

ну возьми посчитай сколько высокосных годов было с 1970 и добавь столько дней...

Re: Сколько лет по дате рождения

Добавлено: 24 авг 2009, 02:04
ironkiss
XxMARSxX писал(а):ну возьми посчитай сколько высокосных годов было с 1970 и добавь столько дней...

проблема не в этом, а в том, что .getTime() только с 1970 года, а у меня есть даты и постарше раза в 2...

Re: Сколько лет по дате рождения

Добавлено: 26 авг 2009, 01:56
ironkiss
сорри, но ап...

Re: Сколько лет по дате рождения

Добавлено: 26 авг 2009, 02:16
XxMARSxX
ну тогда перевести ту дату рождения в секунды и текущую дату в секунды подумаешь одна дата получится с отрицательным знаком, но сумма она же разность получится одинаковой

Re: Сколько лет по дате рождения

Добавлено: 26 авг 2009, 02:19
XxMARSxX
вот переделал пример "из книжки", дата старше 1970 года

Код: Выделить всё

<script type="text/javascript">

var minutes = 1000 * 60;
var hours = minutes * 60;
var days = hours * 24;
var years = days * 365;
var t1 = Date.UTC(1939,09,01);
var d = new Date();
var t2 = d.getTime();
var t = t2 - t1;
var y = t/years;
document.write("Прошло: " + y + " лет с 1939/09/01");

</script>

Re: Сколько лет по дате рождения

Добавлено: 27 авг 2009, 02:48
ironkiss
XxMARSxX, всё супер спасибо, работает, но, отображает так: 34.85764553474 — как убрать всё что после точки?

Re: Сколько лет по дате рождения

Добавлено: 27 авг 2009, 11:13
Vanofuture

Код: Выделить всё

<script type="text/javascript">

var minutes = 1000 * 60;
var hours = minutes * 60;
var days = hours * 24;
var years = days * 365;
var t1 = Date.UTC(1939,09,01);
var d = new Date();
var t2 = d.getTime();
var t = t2 - t1;
var y = t/years;
document.write("Прошло: " + parseInt(y) + " лет с 1939/09/01");

</script>

Re: Сколько лет по дате рождения

Добавлено: 27 авг 2009, 13:13
XxMARSxX
ну вот как-то так

Re: Сколько лет по дате рождения

Добавлено: 28 авг 2009, 06:37
ironkiss
Vanofuture, XxMARSxX, спасибо, всё работает, плюсики по-очереди, не могу часто изменять карму.