Как в Carbon получить слово «День» склоняясь в зависимости от числа (дней,дня,дни)?
Как в 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 судя по всему такого нет
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы получить слово «День» склоняясь в зависимости от числа дней, можно воспользоваться методом `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";
В этом примере мы сначала получаем текущую дату, затем создаем дату в будущем (например, через 5 дней). Далее мы вычисляем разницу в днях между этими датами с помощью метода `diffInDays`. Затем мы используем условия для определения правильного склонения слова «День» в зависимости от количества дней и выводим результат.
Таким образом, с помощью Carbon можно легко получить правильное склонение слова «День» в зависимости от числа дней.