Как получить дату isoFormat ('LL') с библиотекой Carbon, но без года в конце? - PullRequest
0 голосов
/ 29 октября 2019

Я использую библиотеку Carbon в своем многоязычном проекте laravel

Я хочу отображать даты, правильно отформатированные в текущей локали, например:

in 'en' => Thursday, January 5
in 'fr' => jeudi 5 janvier

Что я сейчас делаю, так это:

1 - Я получаю дату, используя метод isoFormat ('LL'), который дает мне следующее: January 5, 2017 (для локали 'en')

2 - удалите 5 последних символов, используяsubstr

3 - обрезать лишнюю точку с запятой

4 - добавить название дня в начале

5 - добавить точку с запятой после имени дня (что верно на английском языке, нонеправильно по-французски)

Итак, мой вопрос: возможно ли правильно получить этот формат с помощью Carbon и как?

спасибо

1 Ответ

0 голосов
/ 29 октября 2019

1 - добавить следующие строки в класс "AppServiceProvider.php"

setlocale(LC_TIME, config('app.locale'));

2 - использовать следующую строку для использования формата

\Carbon\Carbon::now()->formatLocalized('%A, %B  %d')

вывод en:

Tuesday, October 29

выходные данные:

mardi, octobre 29

Если вы хотите изменить формат заказа, используйте следующие коды:

 $now = Carbon::now();
 $locale = App::getLocale();

 if (App::isLocale('en'))
    echo ($now->formatLocalized('%A, %B  %d')); // en Tuesday, October 29
 elseif(App::isLocale('fr'))
    echo ($now->formatLocalized('%A, %d %B')); // fr mardi, 29 octobre

Простое уведомление

Вы также можете знать метод formatLocalized () из Carbon 1. Этот метод все еще работает в Carbon 2, но лучше вместо него использовать isoFormat ().

...