Carbon :: isoFormat не существует - PullRequest
0 голосов
/ 05 ноября 2018

, поскольку laravel использует now() в качестве вспомогательной функции для класса Carbon, я попробовал это

dd(now('GMT+5:45')->isoFormat('x')))

но он возвращает исключение вызова плохого метода laravel, говорящее, что

Illuminate\Support\Carbon::isoFormat does not exist.

Все, что я хочу - это преобразовать дату и время в time string, как и strtotime() function

что мне теперь делать?

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Похоже, что вы используете версию Laravel, которая ниже 5.8, где она включает Углерод 1 , таким образом, isoFormat() - это , не включенная , поскольку она является частью Углерод 2 .

Таким образом, вы можете использовать опцию formatLocalized(), но учтите, что она использует другой шаблон размещения , чем isoFormat()

Я советую вам перейти на Laravel 5.8, если вы хотите использовать isoFormat()

Если вы хотите придерживаться текущей версии Laravel и продолжать использовать formatLocalized(), вам нужно сделать следующее:

  1. У одного из ваших поставщиков услуг, скажем, AppServiceProvider, в вашем реестре () добавьте: Carbon::setLocale($this->app->getLocale()); это будет локализовать ->diffForHumans() только .
  2. Помогите carbon, установив php setLocal(), где он будет использовать уже установленные Locales на вашем компьютере, чтобы убедиться, что в вашей ОС (Linux / Mac) установлен нужный локальный: вы можете проверить это, набрав locale -a, если он не отображается, а затем запустите: sudo dpkg-reconfigure locales появится простой графический интерфейс, чтобы выбрать нужный локальный объект, нажав кнопку sapce , затем введите , выберите локаль по умолчанию, затем.
  3. Если вы только что установили нужные локали, тогда , пожалуйста, не забудьте перезапустить службу php-fpm: systemctl restart php7.3-fpm.service
  4. Используйте локализованные методы, в вашем случае: ->formatLocalized(). например: ->formatLocalized('%A %d %B %Y')
0 голосов
/ 05 ноября 2018

Вы можете использовать функцию format() из Carbon.

now('GMT+5:45')->format('y-m-d');

'y-m-d' можно заменить на формат, который вы видите здесь .

EDIT: Или если вы хотите использовать isoFormat(),

Вы можете использовать Carbon::now() вместо now().

Carbon\Carbon::now()->isoFormat();

Эта проблема возникает из-за того, что now() является помощником Laravel и возвращает Illuminate\Support\Carbon.

...