Определение возраста пользователя по дате рождения

+32
2.54K
Решил поделиться небольшим улучшением, делал для себя, может кому-то пригодиться!

Определяем возраст пользователя по его дате рождения

Иллюстрация

для этого необходимо в файле components/users/frontend.php найти:
  1. $usr['birthdate'] = $inCore->dateFormat($usr['birthdate']);
и добавить перед:
  1. $date = $usr['birthdate'];
  2. list ($year, $month, $day) = split ('-', $date);
  3.  
  4. $fix = 1;
  5. if (date('m') > $month)
  6. $fix = 0;
  7. elseif (date('m') == $month)
  8. {
  9. if (date('d') > $day)
  10. $fix = 0;
  11. }
  12. $age = date('Y') - $year - $fix;
  13.  
  14. function plural_type($n) {
  15. return ($n%10==1 && $n%100!=11 ? 0 : ($n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2));
  16. }
  17. $_plural_years = array('год', 'года', 'лет');
  18. $usr['birthdatelet'] = $age.' '.$_plural_years[plural_type($age)];
теперь в templates/_default_/components/com_users_profile.tpl находим:
  1. {if $usr.showbirth && $usr.birthdate}
  2. <div class="field">
  3. <div class="title">{$LANG.BIRTH}:</div>
  4. <div class="value">{$usr.birthdate}</div>
  5. </div>
  6. {/if}
и заменяем на:
  1. {if $usr.showbirth && $usr.birthdate}
  2. <div class="field">
  3. <div class="title">{$LANG.BIRTH}:</div>
  4. <div class="value">{$usr.birthdate} ({$usr.birthdatelet})</div>
  5. </div>
  6. {/if}

Webmoney:
R274715901195
Z409372671314

Яндекс.Деньги:
41001249914403

Всегда с Вами, Умные Интернет Разработки

+1
CyberMan CyberMan 12 лет назад #
Такой уже есть. Но плюс поставлю
+1
Умные Интернет Разработки Умные Интернет Разработки 12 лет назад #
Где именно? Искал, но не нашел..
+9
Fuze Fuze 12 лет назад #
Код PHP:
  1. $year = floor((time() - strtotime($usr['birthdate']))/31472300);
0
eoleg eoleg 12 лет назад #
вот оказывается как просто все! )
+1
eoleg eoleg 12 лет назад #
кстати когда ставил плюс заметил что стало +7 а Голосов: 6
тоесть не обновилось количество Голосов, непорядок! ))
0
Amurland Amurland 12 лет назад #
да оно всегда так было ;)
0
Dorimen Dorimen 12 лет назад #
С этим что делать исходя из предложенного автором? :)
+6
Fuze Fuze 12 лет назад #
С этим что делать исходя из предложенного автором? :)

--------------------------------------------------------------------
для этого необходимо в файле components/users/frontend.php найти:

Код PHP:
  1. $usr['birthdate'] = $inCore->dateFormat($usr['birthdate']);
и добавить перед:
Код PHP:
  1. $usr['age'] = floor((time() - strtotime($usr['birthdate']))/31472300);
теперь в /templates/ваш_шаблон/components/com_users_profile.tpl находим:
Код HTML:
  1. <div class="value">{$usr.birthdate}</div>
и заменяем на:
Код HTML:
  1. <div class="value">{$usr.birthdate} ({$usr.age|spellcount:'год':'года':'лет'})</div>
0
Dorimen Dorimen 12 лет назад #
Большое спасибо.
0
Haronych Haronych 12 лет назад #
По данному алгоритму говорит что:

Дата рождения: 4 сентября 1978 (42)

Уж больно круто он меня состарил... Я в глубокой печали :(
0
Haronych Haronych 12 лет назад #
А, все... Нужно было перед строкой $usr['birthdate'] = $inCore->dateFormat($usr['birthdate']);
добавлять, а я после поставил... Уже почти расстроиться успел ) А если бы на сайте где много девушек так ошибся страшно представить что бы со мной сделали )))))))
+1
eoleg eoleg 12 лет назад #
Специфический хак, нужно использоваь с осторожностью так как очень многим, особенно женщинам не понравится! )
0
Умные Интернет Разработки Умные Интернет Разработки 12 лет назад #
Да, можно сделать чтобы только администраторы могли просматривать возраст.
+1
Dorimen Dorimen 12 лет назад #
если дату рождения указывают, то какая уж разница
0
Haronych Haronych 12 лет назад #
А как сделать чтобы возраст показывался не только в своем профиле но и в чужих тоже?
+2
Александр Александр 11 лет назад #
К сожалению на 1.10 не прокатывает...:(
0
R161Net R161Net 11 лет назад #
У меня только у администратора и видно! А у пользователей нет! Почему!?
0
kssemenov kssemenov 7 лет назад #
Подскажите, пожалуйста, а как убрать год и часы рождения (их, кстати, непонятно как настраивать), а оставить только дату и месяц? Система 1.10.7

Еще от автора

Определение возраста пользователя по дате рождения для 1.10
Продолжаем переделывать улучшения для 1.10 Определяем возраст пользователя по его дате рождения
Новое поле: семейное положение (исходя от пола) для 1.10
Здравствуйте, решил выложить переделку Семейное положение для версии 1.10.
Объединяем в профиле пользователя Статус и Последний визит
Здравствуйте, вот решил сделать небольшое улучшение, не факт что всем понравится, но все-таки выкладываю:
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.