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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

白狼   2021-03-22 我要评论
想了解浅析Yii2 GridView 日期格式化并实现日期可搜索教程的相关内容吗,白狼在本文为您仔细讲解yii2 gridview 日期格式化的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,欢迎给我留言,共同学习进步。在此也非常感谢大家对网站的支持!

猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们