@Brain_code

Почему Yii::$app->formatter->asDatetime показевает дату на англ?

Помогите решить проблему, есть дата. Надо чтоб виводился месяц на укр язике
вот что сейчас 5a469a10a2c57588905533.png

вот как вивожу
<?= \Yii::$app->formatter->asDatetime($portfolio['date'], "php:d M Y");?>


вот что в настройках
'language' => 'uk-UA',
  • Вопрос задан
  • 645 просмотров
Пригласить эксперта
Ответы на вопрос 1
Во-первых, форматтер отдельно настраивается в настройках/компонентах.
У меня вот так:
'formatter' => [
            'class'         => 'yii\i18n\Formatter',
            'timeZone'      => 'Europe/Moscow',
            'datetimeFormat'=> 'dd MMMM YYYY HH:mm:ss',
            'dateFormat'    => 'dd MMMM YYYY',
            'timeFormat'    => 'HH:mm:ss',
            ...
        ],

Во-вторых, не используйте формат "php:d M Y" т.к. в конфиге он уже будет прописан. Только в тех случаях, когда нужен отличный от конфига формат.
<?= \Yii::$app->formatter->asDatetime($portfolio['date']);?>
<?= \Yii::$app->formatter->asDatetime($portfolio['date'], 'dd MMMM в HH:mm');?>


В-третьих, убедитесь что расширение intl установлено и обновлено, можно ее также посмотреть в phpinfo()

И как еще один из вариантов, в дополнение к первому, но если у Вас не так и вообще не объявляется локаль, то по умолчанию она берется из language приложения.
'formatter' => [
            ...
            'locale' => 'uk-UA'
            ...
        ],
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы