如何在列表页面中格式化日期


How to format date in listing page

我是Yii框架的新手,刚刚开始在现有的网站上工作。我有一个列表页面,我的要求是添加一个新字段"review_date_time",我可以设法在列表中显示它。现在我的问题是如何更改日期的格式,以及在表格字段中没有日期时如何显示空格。现在,如果没有日期,它将显示 0000-00-00 00:00:00。

我的上市代码

 $this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'series-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
                    array('header' => 'Category', 'name' => 'category.title'),
                    'exam_year',
                    'title',
                    'review_date_time',
                    array(
                        'class' => 'CButtonColumn',
                    ),
    ),
 ));

如果它显示 0000-00-00 00:00:00,则意味着该值是 db 表中的默认值,因此您必须使用 CDataColumn 的 value 属性:

$this->widget('zii.widgets.grid.CGridView', array(
 'id' => 'series-grid',
 'dataProvider' => $model->search(),
 'filter' => $model,
 // 'nullDisplay'=>'',
 'columns' => array(
                array('header' => 'Category', 'name' => 'category.title'),
                'exam_year',
                'title',
                // 'review_date_time',
                array(
                    'name'=>'review_date_time',
                    'value'=>'$data->review_date_time=="0000-00-00 00:00:00"?"":$data->review_date_time'
                )
                array(
                    'class' => 'CButtonColumn',
                ),
 ),
));

或者尝试 CGridView 的 nullDisplay 属性(如果要存储 null 并覆盖 afterFind 以将 null 格式设置为 0000-00-00 00:00:00(:

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'series-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'nullDisplay'=>'',
'columns' => array(
                array('header' => 'Category', 'name' => 'category.title'),
                'exam_year',
                'title',
                'review_date_time',
                array(
                    'class' => 'CButtonColumn',
                ),
 ),
));