Немного лениво выглядит профиль пользователя на сайте, когда вместо надписи о количестве лет выводится дата его рождения. Снипед, для Битрикса, жаль что нету API функции.
if(strlen($ar_UserCabinet['PERSONAL_BIRTHDAY']) > 0) { $ar_UserDateTo = explode('.', $ar_UserCabinet['PERSONAL_BIRTHDAY']); $s_MetaDateTo = mktime(0, 0, 0, $ar_UserDateTo[1], $ar_UserDateTo[0], $ar_UserDateTo[2]); $s_MetaDateFrom = mktime(0, 0, 0, date('m'), date('d'), date('Y')); $i_Meta = ($s_MetaDateFrom - $s_MetaDateTo) / 31276800; # проверим был ли у пользователя день рождения, если еще небыло то -1 $s_DateRog = mktime(0, 0, 0, $ar_UserDateTo[1], $ar_UserDateTo[0], date('Y')); if($s_DateRog > $s_MetaDateFrom) $i_Meta -= 1; $arResult['USER_BIRTHDAY'] = intval($i_Meta); }
Ваш способ будет нерабочим в дни, близким к дню рождения, т.к.:
1. У вас идет расчёт исходя из 362-х дней в году
2. Не учитываются високосные даты.
Да, точно, надо поправить, спасибо :)