Как на PHP реализовать склонение слов после чисел в тексте?

Как можно улучшить склонение слов после чисел в функции, чтобы в зависимости от количества правильно отображались формы слова "день", "дня", "месяц", "месяца", "неделя", "недели", "год", "лет" в исходном коде PHP?
  • 8 мая 2024 г. 12:10
Ответы на вопрос 2
Для реализации склонения слов после чисел в тексте на PHP можно использовать следующий код:

```php
function pluralForm($number, $one, $two, $five) {
    $number = abs($number) % 100;
    $l = $number % 10;
    if ($number > 10 && $number < 20) return $five;
    if ($l > 1 && $l < 5) return $two;
    if ($l == 1) return $one;
    return $five;
}
```

Пример использования:

```php
$days = 5;
echo $days . ' ' . pluralForm($days, 'день', 'дня', 'дней');
```

Чтобы улучшить данную функцию, можно добавить поддержку большего количества форм склонения, например, для доллара или евро. Также можно создать более удобный интерфейс для передачи форм склонения в функцию, например, с использованием ассоциативного массива.
Не ломать голову и использовать готовый инструмент 

Пример из README (только на русском):
echo Carbon::now()->subMinutes(2)->locale('ru_RU')->diffForHumans(); // '2 минуты назад'

Документация настройки вариантов переводов здесь (можно с запятыми, можно словами без цифр и т.д.)
Похожие вопросы