Переопределить locale даты

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

Переопределить locale даты

Сообщение Gogi »

Есть мультиязычный сайт. Когда начинал создаваться было определено что сокращение 'ua' - украинский язык. Много чего теперь на основе этого функционирует, как сам фреймворк Yii так и разные скрипты, плагины.
Но по стандарту должно было быть не 'ua', а 'uk'. На это ориентируется и Yii::app()->dateFormatter->formatDateTime()
Как можно вывести дату в формате локали 'uk' если в сессии установлено 'ua', и чтобы это распространялось только на formatDateTime()?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Переопределить locale даты

Сообщение zelenin »

проще всего доработать соответствующие классы на предмет подмены ua на uk - https://github.com/yiisoft/yii2/blob/ma ... er.php#L68
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

Re: Переопределить locale даты

Сообщение Gogi »

Попробую. Тогда еще один вопрос по датах

Код: Выделить всё

Yii::app()->dateFormatter->formatDateTime($data->graduate_date) 
Для ru выводит 30 марта 2012 г., 0:00:00
Для en выводит Mar 30, 2012, 12:00:00 AM
Все отлично, формат вывода соответствует формату в регионе
Но как убрать

Код: Выделить всё

0:00:00 и 12:00:00
?
Если воспользоватся

Код: Выделить всё

Yii::app()->dateFormatter->format("MMM d, yyyy",$data->graduate_date); 
для ru выведет

Код: Выделить всё

марта 30, 2012
что не есть хорошо
Можно в Yii::app()->dateFormatter->formatDateTime() убрать время?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Переопределить locale даты

Сообщение ElisDN »

formatDate(...)
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

Re: Переопределить locale даты

Сообщение Gogi »

Это я пробовал с самого начала, но
CDateFormatter and its behaviors do not have a method or closure named "formatDate".
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

Re: Переопределить locale даты

Сообщение Gogi »

Третий параметр нужно оставлять пустым

Код: Выделить всё

Yii::app()->dateFormatter->formatDateTime($data->graduate_date,'medium','') 
убирает время
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

Re: Переопределить locale даты

Сообщение Gogi »

Окончательно вопрос решил с ручной установкой языка, вот так

Код: Выделить всё

CLocale::getInstance($lang)->dateFormatter->formatDateTime($data->graduate_date,'medium',null) 
Ответить