先给大家展示下日期格式化效果图,如果大家满意请继续往下阅读:
这个我们分情况讨论
1、如果你的数据库字段created_at存的时间格式是date或者datetime,那很简单,gridview中直接输出该字段created_at即可,如上图中右侧所示
2、如果数据库存入的时间戳类型,如上图中左侧所示,则需要像下面这样进行输出
1
2
3
4
5
6
7
8
9
10
|
[ 'attribute' => 'created_at' , 'value' => function ( $model ) { return date ( 'Y-m-d H:i:s' , $model ->created_at); }, ], [ 'attribute' => 'created_at' , 'format' => [ 'date' , 'Y-m-d H:i:s' ], ], |
以上展示了两种方式进行格式输出,都可以。但是,如果想要实现搜索的机制,如果你的数据库存入的是datetime型,很方便,dataProvider不用做修改,
代码如下
1
2
3
4
5
|
$query ->andFilterWhere([ // ...... 'created_at' => $this ->created_at, // ...... ]); |
如果你的数据库存入的是时间戳。
第一步,修改对应规则如下图所示
第二步,修改dataProvider可参考如下代码
1
2
3
4
5
6
7
|
//我们搜索输入框中输入的格式一般是 2016-01-01 而非时间戳 //输出2016-01-01无非是想搜索这一天的数据,因此代码如下 if ( $this ->created_at) { $createdAt = strtotime ( $this ->created_at); $createdAtEnd = $createdAt + 24*3600; $query ->andWhere( "created_at >= {$createdAt} AND created_at <= {$createdAtEnd}" ); } |
这里做个小总结,建议使用datetime类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,欢迎给我留言,共同学习进步。在此也非常感谢大家对服务器之家网站的支持!