Есть у меня в базе поле
usercreate
В этом поле содержится запись вида
1271513958
На сайте это поле выводится
<?= time_counter($user_inf['usercreate'], 1, "дни") ?>
Но есть один косяк =
8 год 91 день
Должно быть
8 лет, а написано
8 год.
Вот сама функция (честно говоря, не догоняю, как доработать).
function time_counter($date, $type=0, $tvis = '', $fstr = 0) {
if ($type==1) { $check_time = time() - $date; } # обратный счетчик
elseif ($type==2) { $check_time = $date; } # счетчик
else { $check_time = $date - time(); } # счетчик
// if($check_time <= 0){ return false; } # стоп счетчик
$year = floor($check_time / 31536000); # 365 дней
$days = floor(($check_time%31536000) / 86400); # $days = floor($check_time / 86400 - ($year * 365));
$hours = floor(($check_time%86400) / 3600);
$minutes = floor(($check_time%3600) / 60);
$seconds = $check_time%60;
$str = '';
# Года
if($year > 0) $str .= declension($year, array('год','года','год'), $fstr).' ';
# дни
if ($type==1) {
if(($year == 0 && $days != 0) || substr_count($tvis,"дни") && $days != 0){ $str .= declension($days,array('день','дня','дней')).' '; }
} else {
if (substr_count($tvis,"час")) { if($days > 0) $str .= declension($days,array('день','дня','дней')).' '; }
}
# часы
if ($type==1) {
if(($year == 0 && $days == 0 && $hours != 0) || substr_count($tvis,"час") && $hours != 0){ $str .= declension($hours,array('час','часа','часов')).' '; }
} else {
if (substr_count($tvis,"час")) { if($hours > 0) $str .= declension($hours,array('час','часа','часов')).' '; }
}
# минуты
if ($type==1) {
if(($days == 0) && ($hours == 0)and($minutes != 0)){ $str .= declension($minutes,array('минута','минуты','минут')).' '; }
} else {
if (substr_count($tvis,"мин")) { if($minutes > 0) $str .= declension($minutes,array('минута','минуты','минут')).' '; }
}
# секунды
if ($type==1) {
if(($days == 0)and($hours == 0)and($minutes == 0)and($seconds != 0)){ $str .= declension($seconds, array('секунда','секунды','секунд')).' '; }
} else {
if (substr_count($tvis,"сек")) { if($seconds > 0) $str .= declension($seconds,array('секунда','секунды','секунд')); }
}
return $str;
}