浅析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 相关文章推荐
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 PHP
php的curl实现get和post的代码
Aug 23 PHP
一个很不错的PHP翻页类
Jun 01 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
PHP实现微信对账单处理
Oct 01 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添加xml文档内容的方法
2015/01/23 PHP
php socket通信简单实现
2016/11/18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
javascript innerHTML使用分析
2010/12/03 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python正规则表达式学习指南
2016/08/02 Python
简单了解python列表和元组的区别
2020/05/14 Python
保安的辞职报告怎么写
2014/01/20 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
优秀教师事迹简介
2014/02/02 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang