romandkoz
@romandkoz

Как правильно склонить год в php?

Ищу разницу в датах, на выходе кол-во прошедших лет. Как склонить, год, года, лет?
Код
spoiler
$now = new DateTime();
$date = DateTime::createFromFormat("Y-m-d H:i", '2017-01-18 00:00');
$interval = $now->diff($date);
$years = $interval->y;
  • Вопрос задан
  • 821 просмотр
Решения вопроса 2
Adamos
@Adamos
function grammar($number, $forms)
{
    assert(count($forms) === 3);
    $nn = abs((abs($number % 100) < 21) ? ($number % 100) : ($number % 10));
    return (($nn == 1) ? $forms[0] : (($nn > 1 && $nn < 5) ? $forms[1] : $forms[2]));
}
echo $years . grammar($years, [' год', ' года', ' лет']);
Ответ написан
romandkoz
@romandkoz Автор вопроса
function decline($num, $forms) {
    return $num%10==1&&$num%100!=11?$forms[0]:($num%10>=2&&$num%10<=4&&($num%100<10||$num%100>=20)?$forms[1]:$forms[2]);
}

echo $years . ' ' . decline($years, ['год', 'года', 'лет']); // 3 года
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Eridani
@Eridani
Мимо проходил
1 - год
2,3,4 - года
else лет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 230 000 ₽
ImageSpark Санкт-Петербург
от 60 000 ₽
FrozenEon Киев
от 1 500 до 3 000 $
04 июн. 2020, в 08:18
500 руб./за проект
04 июн. 2020, в 08:04
800 руб./за проект