Intereting Posts
Как установить выбранное значение jquery select2? Отправка двух Ajax-запросов на два разных скрипта PHP из одной функции javascript Сохранять клики внутри файла .txt / .php на сервере как скрыть фактическое местоположение папки загрузки Получение многоканальных данных Google Analytics через API Почему мой сайт всегда использует ErrorController для всех типов ошибок независимо от кода состояния HTTP? jQuery анализирует / отображает данные json от php json_encode Лучшая практика, переопределяющая __construct () по сравнению с предоставлением метода init () Почему переменные PHP начинаются с символа знака $? Процесс FastCGI превысил настроенный тайм-аут активности Laravel SwiftMailer: ожидаемый код ответа 250, но получил код «530», с сообщением «530-5.5.1 Требуется аутентификация $ _GET URL от? Url = http: //google.com Вызов функции PHP из HTML-формы в том же файле? завиток нет ответа эхо-печать PHP превращает запятую в <br />

Yii, показать другой формат даты в cgridview

Я использовал cgridview в приложении Yii, я хочу изменить формат даты в значении,

'columns'=>array( array( 'name'=>'Date', 'header'=>'Date', 'value'=>'$data["work_date"]' ), 

Я хочу показать дату в формате dd-mm-yyyy, в настоящее время она отображается как yyyy-mm-dd.

Попробуй это,

 array( 'name'=>'Date', 'header'=>'Date', //'value'=>'date("d MY",strtotime($data["work_date"]))' 'value'=>'Yii::app()->dateFormatter->format("d MMM y",strtotime($data->date))' ), 

Я думаю, что есть более элегантный способ форматировать дату (или что-то еще), чем тот, который предлагается в других ответах. CGridView использует свойство CGridView чтобы указать компонент приложения для форматирования значений . format по умолчанию.

Поэтому необходимо настроить компонент format в файле конфигурации приложения следующим образом:

 'components' => array( ... 'format' => array( 'dateFormat' => 'dmY' ) ) 

Если work_date уже является отметкой времени Unix, достаточно описать столбец в CGridView следующим образом:

 array( 'name' => 'work_date', 'type' => 'date' ) 

Если work_date похож на вопрос, то массив столбца:

 array( 'name' => 'work_date', 'type' => 'date', 'value' => 'strtotime($data->work_date)' ) 

Если у вас есть настраиваемое поле для форматирования, которое не поддерживается CFormatter, тогда легко добавить свой собственный тип , расширив CFormatter :

 class MyFormatter extends CFormatter { public function formatCustom($value) { // format $value parameter, ie make date conversion like in the question: return date("dmY", strtotime($value)); } } 

Тогда конфигурация компонента форматирования:

 'components' => array( ... 'format' => array( 'class' => 'MyFormatter' ) ) 

И колонка описывается следующим образом:

 array( 'name' => 'work_date', 'type' => 'custom' ) 

Таким образом, нет необходимости беспокоиться о значении выражения PHP каждый раз, когда вы хотите форматировать поле того же типа.

Есть (по крайней мере) два варианта:

(При использовании CGridView / CDetailView) вы можете отформатировать строку даты (то есть: поле mysql datetime) вместо метки времени. Вы можете использовать это:

 array( 'name' => 'startsOn', 'format' => 'datetime', 'value' => 'strtotime($data->startsOn)' ), 

Или используйте это:

 array( 'name' => 'startsOn', 'value' => 'Yii::app()->dateFormatter->format("d MMM y", strtotime($data->startsOn))' ), 

Для Admin.php

 array( 'name'=>'start_date', 'header'=>'Date', 'value'=>'date_format(date_create($data->start_date), "dmY ")', ), 

Для View.php

 array( 'name'=>'Date', 'value'=>date_format(date_create($model->order_date), "dmY "), ),