yii2 GridView 日期格式化并实现日期可搜索 案例
2018-04-10 05:27
190 查看
作者:白狼 出处:http://www.manks.top/article/yii2_gridview_dateformat_search
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
日期格式化,我们先来看看效果图
这个我们分情况讨论
1、如果你的数据库字段created_at存的时间格式是date或者datetime,那很简单,gridview中直接输出该字段created_at即可,如上图中右侧所示
2、如果数据库存入的时间戳类型,如上图中左侧所示,则需要像下面这样进行输出
以上展示了两种方式进行格式输出,都可以。但是,如果想要实现搜索的机制,如果你的数据库存入的是datetime型,很方便,dataProvider不用做修改,
代码如下
如果你的数据库存入的是时间戳,
第一步,修改对应规则如下图所示
第二步,修改dataProvider可参考如下代码
这里做个小总结,建议使用datetime类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,下方留言我们共同交流。
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
日期格式化,我们先来看看效果图
这个我们分情况讨论
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 日期格式化并实现日期可搜索 案例
- 浅析Yii2 GridView 日期格式化并实现日期可搜索教程
- yii2 GridView 下拉搜索实现案例教程
- 浅析Yii2 GridView 日期格式化并实现日期可搜索教程
- yii2 GridView 下拉搜索实现案例教程
- 浅析Yii2 GridView实现下拉搜索教程
- 利用yii2 gridview实现批量删除案例
- 利用yii2 gridview实现批量删除案例
- 利用yii2 gridview实现批量删除案例
- 浅析Yii2 GridView实现下拉搜索教程
- js 实现日期灵活格式化的小例子
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
- JavaScript正则表达式实现日期格式化
- Yii2 ActiveRecord多表关联及多表关联搜索的实现
- YII2 GridView联表搜索,排序
- YII2 GridView联表:文本框搜索、下拉框选择搜索和排序
- 浅析Yii2 gridview实现批量删除教程