Как в Carbon получить слово «День» склоняясь в зависимости от числа (дней,дня,дни)?

Ссылка скопирована
PHP
17 января 2026 1 ответ

Как в Carbon получить слово "День" склоняясь в зависимости от числа (дней,дня,дни)?

Дополнительно:

не совсем понятен вопрос? включить локализацию.

В Carbon - через функции локализации.
Внутри carbon использует symfony/translation, (pluralization)

<?php $daysTranslator = 'ru_Days'; $translator = CarbonTranslator::get($daysTranslator); $translator->setTranslations([     'day' => ':count день|:count дня|:count дней', ]);  $date1 = Carbon::create(2018, 1, 1, 0, 0, 0); $date1before = Carbon::create(2018, 1, 2, 4, 0, 0); $date2before = Carbon::create(2018, 1, 3, 4, 0, 0); $date5before = Carbon::create(2018, 1, 6, 4, 0, 0); $localized=$date1->locale($daysTranslator);  echo $localized->diffForHumans($date1before)."n";  echo $localized->diffForHumans($date2before)."n";  echo $localized->diffForHumans($date5before)."n";   // 1 день до // 2 дня до // 5 дней до

<?php $daysTranslator = 'ru_Days'; $translator = CarbonTranslator::get($daysTranslator); $translator->setTranslations([ 'day' => ':count день|:count дня|:count дней', ]); $date1 = Carbon::create(2018, 1, 1, 0, 0, 0); $date1before = Carbon::create(2018, 1, 2, 4, 0, 0); $date2before = Carbon::create(2018, 1, 3, 4, 0, 0); $date5before = Carbon::create(2018, 1, 6, 4, 0, 0); $localized=$date1->locale($daysTranslator); echo $localized->diffForHumans($date1before)."n"; echo $localized->diffForHumans($date2before)."n"; echo $localized->diffForHumans($date5before)."n"; // 1 день до // 2 дня до // 5 дней до

Ещё сюда загляните - Склонение числительных

  • это для сложных случаев, а вообще, форматирование и так работает - только указать локаль.
    <?php $date1 = Carbon::create(2018, 1, 1, 0, 0, 0); $date1before = Carbon::create(2018, 1, 2, 4, 0, 0); $localized=$date1->locale('ru_RU'); echo $localized->diffForHumans($date1before);

    <?php $date1 = Carbon::create(2018, 1, 1, 0, 0, 0); $date1before = Carbon::create(2018, 1, 2, 4, 0, 0); $localized=$date1->locale('ru_RU'); echo $localized->diffForHumans($date1before);

  • Помогло это https://qna.habr.com/answer?answer_id=1106643#answ...
    У Carbon судя по всему такого нет
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

Для того чтобы получить слово «День» склоняясь в зависимости от числа дней, можно воспользоваться методом `diffForHumans` в библиотеке Carbon.

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

use Carbon\Carbon;
 
$now = Carbon::now();
$future = $now->copy()->addDays(5);
 
$diffInDays = $now->diffInDays($future);
 
if ($diffInDays == 1) {
    $word = 'день';
} elseif ($diffInDays > 1 && $diffInDays < 5) {
    $word = 'дня';
} else {
    $word = 'дней';
}
 
echo "Через $diffInDays $word";

use Carbon\Carbon; $now = Carbon::now(); $future = $now->copy()->addDays(5); $diffInDays = $now->diffInDays($future); if ($diffInDays == 1) { $word = 'день'; } elseif ($diffInDays > 1 && $diffInDays < 5) { $word = 'дня'; } else { $word = 'дней'; } echo "Через $diffInDays $word";

В этом примере мы сначала получаем текущую дату, затем создаем дату в будущем (например, через 5 дней). Далее мы вычисляем разницу в днях между этими датами с помощью метода `diffInDays`. Затем мы используем условия для определения правильного склонения слова «День» в зависимости от количества дней и выводим результат.

Таким образом, с помощью Carbon можно легко получить правильное склонение слова «День» в зависимости от числа дней.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно