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


Posted in PHP onApril 22, 2016

先给大家展示下日期格式化效果图,如果大家满意请继续往下阅读:浅析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类型,个人觉得存时间戳甚是麻烦,如果你有好的建议,欢迎给我留言,共同学习进步。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
Mar 19 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
Dec 17 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 #PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 #PHP
浅析Yii2中GridView常见操作
Apr 22 #PHP
php简单实现sql防注入的方法
Apr 22 #PHP
PHP简单获取及判断提交来源的方法
Apr 22 #PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 #PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 #PHP
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python深入学习之内存管理
2014/08/31 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python多进程同步简单实现代码
2016/04/27 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
django中forms组件的使用与注意
2019/07/08 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
html5与css3小应用
2013/04/03 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
会计专业自我鉴定
2014/02/10 职场文书
环境建设实施方案
2014/03/14 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
服务器nginx权限被拒绝解决案例
2022/09/23 Servers