Есть мультиязычный сайт. Когда начинал создаваться было определено что сокращение 'ua' - украинский язык. Много чего теперь на основе этого функционирует, как сам фреймворк Yii так и разные скрипты, плагины.
Но по стандарту должно было быть не 'ua', а 'uk'. На это ориентируется и Yii::app()->dateFormatter->formatDateTime()
Как можно вывести дату в формате локали 'uk' если в сессии установлено 'ua', и чтобы это распространялось только на formatDateTime()?
Переопределить locale даты
Re: Переопределить locale даты
проще всего доработать соответствующие классы на предмет подмены ua на uk - https://github.com/yiisoft/yii2/blob/ma ... er.php#L68
Re: Переопределить locale даты
Попробую. Тогда еще один вопрос по датах
Для ru выводит 30 марта 2012 г., 0:00:00
Для en выводит Mar 30, 2012, 12:00:00 AM
Все отлично, формат вывода соответствует формату в регионе
Но как убрать ?
Если воспользоватся
для ru выведет что не есть хорошо
Можно в Yii::app()->dateFormatter->formatDateTime() убрать время?
Код: Выделить всё
Yii::app()->dateFormatter->formatDateTime($data->graduate_date)
Для en выводит Mar 30, 2012, 12:00:00 AM
Все отлично, формат вывода соответствует формату в регионе
Но как убрать
Код: Выделить всё
0:00:00 и 12:00:00
Если воспользоватся
Код: Выделить всё
Yii::app()->dateFormatter->format("MMM d, yyyy",$data->graduate_date);
Код: Выделить всё
марта 30, 2012
Можно в Yii::app()->dateFormatter->formatDateTime() убрать время?
Re: Переопределить locale даты
formatDate(...)
Re: Переопределить locale даты
Это я пробовал с самого начала, но
CDateFormatter and its behaviors do not have a method or closure named "formatDate".
Re: Переопределить locale даты
Третий параметр нужно оставлять пустым
убирает время
Код: Выделить всё
Yii::app()->dateFormatter->formatDateTime($data->graduate_date,'medium','')
Re: Переопределить locale даты
Окончательно вопрос решил с ручной установкой языка, вот так
Код: Выделить всё
CLocale::getInstance($lang)->dateFormatter->formatDateTime($data->graduate_date,'medium',null)