手机
当前位置:查字典教程网 >编程开发 >php教程 >浅析Yii2 GridView 日期格式化并实现日期可搜索教程
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
摘要:先给大家展示下日期格式化效果图,如果大家满意请继续往下阅读:这个我们分情况讨论1、如果你的数据库字段created_at存的时间格式是dat...

先给大家展示下日期格式化效果图,如果大家满意请继续往下阅读:

浅析Yii2 GridView 日期格式化并实现日期可搜索教程1

这个我们分情况讨论

1、如果你的数据库字段created_at存的时间格式是date或者datetime,那很简单,gridview中直接输出该字段created_at即可,如上图中右侧所示

2、如果数据库存入的时间戳类型,如上图中左侧所示,则需要像下面这样进行输出

[ '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不用做修改,

代码如下

$query->andFilterWhere([ // ...... 'created_at' => $this->created_at, // ...... ]);

如果你的数据库存入的是时间戳。

第一步,修改对应规则如下图所示

第二步,修改dataProvider可参考如下代码

//我们搜索输入框中输入的格式一般是 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类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,欢迎给我留言,共同学习进步。在此也非常感谢大家对查字典教程网的支持!

【浅析Yii2 GridView 日期格式化并实现日期可搜索教程】相关文章:

php使用post数组的键值创建同名变量并赋值的方法

php数组随机排序实现方法

一棵php的类树(支持无限分类)

第四节 构造函数和析构函数 [4]

php实现每天自动变换随机问候语的方法

PHP文本数据库的搜索方法

强烈推荐:php.ini中文版(2)

聊天室php&mysql(三)

php的计数器程序

PHP中的流(streams)浅析

精品推荐
分类导航