浅析Yii2 GridView 日期格式化并实现日期可搜索教程
来源: 阅读:1429 次 日期:2016-08-26 14:47:17
温馨提示: 小编为您整理了“浅析Yii2 GridView 日期格式化并实现日期可搜索教程”,方便广大网友查阅!

这篇文章主要介绍了Yii2 GridView 日期格式化并实现日期可搜索教程的相关资料,需要的朋友可以参考下

这个我们分情况讨论

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类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,欢迎给我留言,共同学习进步。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map