Yii 日期时间过滤列 filter
在yii使用过程中,我们经常要使用到 按时间区间来检索数据
用gridview自身的filter就无法满足我们得需求。
下面可以用插件的方式来搞定:
sydatecolumn
下载地址:http://www.yiiframework.com/extension/sydatecolumn/
1.复制SYDateColumn.php到components目录中。
这个类会自动生成以属性名加_range['from']和_range['to']为name的输入框,如果只用single的话,只有一个to.
2.修改model
因为加了与数据库字段不相关的model属性,所以这里我们定义一个属性
public $addtime_range = array();
function rules() {
return array(
...
array('....., addtime_range', 'safe', 'on'=>'search'),
3.修改search()方法
//addtime_range
$from = $to = '';
if (count($this->addtime_range)>=1) {
if (isset($this->addtime_range['from'])) {
$from = $this->addtime_range['from'];
}
if (isset($this->addtime_range['to'])) {
$to= $this->addtime_range['to'];
}
}
if ($from!='' || $to !='') {
if ($from!='' && $to!='') {//当两框都选择时,则搜索这个区间的数据.
$from = date("Y-m-d", strtotime($from));
$to = date("Y-m-d", strtotime($to));
$criteria->compare('t.addtime',">=".strtotime($from));
$criteria->compare('t.addtime',"<=".strtotime($to));
}
else {//当只选择了一个框时,搜出这天的记录.
if ($from!='') $addtime = $from;
if ($to != '') $addtime = $to;
$addtime = date("Y-m-d", strtotime($addtime));
$criteria->compare('t.addtime',">=".strtotime($addtime));
$criteria->compare('t.addtime',"<=".(strtotime($addtime)+86400));
}
}
//orderdate
$to = '';
if (isset($this->orderdate_range['to'])) {
$to= $this->orderdate_range['to'];
}
if ($to!='') {
$orderdate = date("Y-m-d", strtotime($to));
$criteria->compare('orderdate',$orderdate,true);
}
4.修改view
array(
'header'=>'时间',//具体设置每列的header
'name'=>'addtime',
'filter'=>'range',//可以设置的值为:range,single.
'class'=>'SYDateColumn',
'htmlOptions'=>array('style'=>'width: 150px;text-align: center;'),
),
Yii 日期时间过滤列 filter的更多相关文章
- Angularjs在控制器(controller.js)的js代码中使用过滤器($filter)格式化日期/时间实例
Angularjs内置的过滤器(filter)为我们的数据信息格式化提供了比较强大的功能,比如:格式化时间,日期.格式化数字精度.语言本地化.格式化货币等等.但这些过滤器一般都是在VIEW中使用的,比 ...
- PowerBI开发 第十五篇:DAX 表达式(时间+过滤+关系)
DAX表达式中包含时间关系(Time Intelligence)相关的函数,用于对日期维度进行累加.同比和环比等分析.PowerBI能够创建关系,通过过滤器来对影响计算的上下文. 一,时间关系 DAX ...
- 表单(中)-EasyUI Combogrid 组合网格、EasyUI Numberbox 数字框、EasyUI Datebox 日期框、EasyUI Datetimebox 日期时间框、EasyUI Calendar 日历
EasyUI Combogrid 组合网格 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults.通过 $.fn.combogrid.defaults 重写 ...
- dede日期时间标签调用大全
dedecms最强大的功能就是调用标签,可以变换出各种样式的文章形式出来,本节将DEDECMS调用时间的样式做一个总结,基本所有的时间调用样式都有了,日期时间格式 (利用strftime()函数格式化 ...
- MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...
- UIDatePicker 日期/时间选取器(滚轮)—IOS开发
UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样 ...
- MySQL tips (日期时间操作/concat 等)
1. Query结尾要加一个分号: 2. 数据库和表 SHOW DATABASES; USE YOUR_DB; SHOW TABLES; SHOW COLUMNS FROM study或者D ...
- ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换(转自happymagic的专栏)
在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
随机推荐
- java.util包详解
介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结 ...
- css 三角图标
.triangle-right{ display: inline-block; width: 0; height: 0; border-top: 6px solid transparent; bord ...
- Angularjs集成第三方js插件之Uploadify
有时候需要用一些第三方插件,比如datepicker,slider,或者tree等.以前的做法是直接通过jquery取得某个元素,然后调用某个方法即可.但在angularjs中,不能直接这么写,必须写 ...
- HDFS DATANODE 磁盘容量的最小值
HDFS的DATANODE的剩余空间具体要到多大?关于这个问题,下面记录下对这个问题的调查 昨天,讨论群里面给出了一个异常: op@odbtest bin]$ hadoop fs -put ../tm ...
- java HashMap源码分析(JDK8)
这两天在复习JAVA的知识点,想更深层次的了解一下JAVA,所以就看了看JAVA的源码,把自己的分析写在这里,也当做是笔记吧,方便记忆.写的不对的地方也请大家多多指教. JDK1.6中HashMap采 ...
- Ubuntu-16.04 R 安装及Jupyter notebook 配置
1. R 安装 通常在Terminal下直接apt-get 即可,在16.10下可以get到R-3.3.1,目前最新好像是 R-3.4.2,可以去官方网站下载源码编译 (https://www.r-p ...
- springboot-18-springboot的参数封装
springboot的参数封装, 和springmvc相识 简单参数的封装 1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * ...
- 根据模板导出excel
@RequestMapping(value = "/export", method = RequestMethod.GET) public void exportApprovals ...
- 在Java Web项目中,不用ActionContext类来获得tomcat部署项目的绝对路径
例子:sendIosApns.class.getClassLoader().getResource("").getFile().replaceAll("%20" ...
- Maven可以提交到官方公共仓库maven.org
参考http://central.sonatype.org/pages/ossrh-guide.html这个网址的操作,即可提交到maven.org. 这里有具体的实践方法:http://blog.c ...