gordon_shamway
@gordon_shamway

Как орфографически правильно вывести данный статус?

К примеру, пользователь вводит количество дней, отправляет форму и получает примерно такой ответ
На вашем аккаунте в течении 1 дня не было изменений или На вашем аккаунте в течении 7 дней не было изменений или На вашем аккаунте в течении 31 дня не было изменений
Вопрос: как в зависимости от количества дней, выводить падеж слова день?
  • Вопрос задан
  • 271 просмотр
Решения вопроса 1
gubin_niko
@gubin_niko
/**
   * Склонение строки согласно переданному числу
   * titles example: ['рубль', 'рубля', 'рублей']
   *
   * @param $number
   * @param $titles
   * @param bool $returnNumber
   * @return string
   */
  public function declension($number, $titles, $returnNumber = false)
  {
    $cases = [2, 0, 1, 1, 1, 2];

    return ($returnNumber ? $number . ' ' : '') . $titles[($number % 100 > 4 && $number % 100 < 20) ? 2 : $cases[min($number % 10, 5)]];
  }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Использовать модули для интернационализации (i18n) и не мучиться.
https://github.com/czukowski/I18n_Plural и подобные.

echo __('Hi My Age Is', 1, array(':age' => 1));
// Hello world, I\'m 1 year old
echo __('Hi My Age Is', 2, array(':age' => 2));
// Hello world, I\'m 2 years old
echo __('Hi My Age Is', 10, array(':age' => 10));
// Hello world, I\'m 10 years old

// Now suppose we've switched to another language

echo __('hello.myage', 1, array(':age' => 1));
// Привет мир, мне уже 1 год
echo __('hello.myage', 2, array(':age' => 2));
// Привет мир, мне уже 2 года
echo __('hello.myage', 10, array(':age' => 10));
// Привет мир, мне уже 10 лет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы