mysql - Yii 框架日期范围

标签 mysql date yii

我在 Yii 中查找日期范围时遇到问题,如果 FROM_DATE: 2015-02-05 和 to_date: 2015-02-10,在 gridview 中仅显示日期为 05,06,07,08,09 和仅日期为 10-02,未出现。 在另一种情况下,如果我想搜索这样的日期范围 from_date : 2015-02-21 to_date: 2015-02-21,则应出现日期为 2015-02-21 的数据 如何解决这个问题?它应该如何是正确的代码?

型号

public function search()
{
    $criteria=new CDbCriteria;
if(!empty($this->from_date) && empty($this->to_date)){
        $criteria->condition="create_date >= '$this->from_date'";
    }elseif(!empty($this->to_date) && empty($this->from_date)){
        $criteria->condition="create_date <= '$this->to_date'";
    }elseif(!empty($this->to_date) && !empty($this->from_date)){
        $criteria->condition="create_date >= '$this->from_date' and create_date<= '$this->to_date'";
    }
    $criteria->compare('user_id',$this->user_id);
    $criteria->compare('lokasi',$this->lokasi,true);
    $criteria->compare('satisfy_val',$this->satisfy_val,true);
    $criteria->compare('create_date',$this->create_date,true);
    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
        'sort'=>array(
        'defaultOrder'=>array('create_date DESC',)),
            'pagination'=>array(
                    'PageSize'=>150
            ),
    ));
}

谢谢

最佳答案

您可以使用以下代码搜索日期范围

if((isset($this->from_date) && trim($this->from_date) != "") && (isset($this->to_date) && trim($this->to_date) != "")){
        $criteria->condition = ' create_date>="'.date("Y-m-d",strtotime($this->from_date)).'" AND create_date<="'.date("Y-m-d",strtotime($this->to_date)).'"';
}

使用上面的代码后,您的代码看起来:

public function search()
{
    $criteria=new CDbCriteria;
    if((isset($this->from_date) && trim($this->from_date) != "") && (isset($this->to_date) && trim($this->to_date) != "")){
        $criteria->condition = ' create_date>="'.date("Y-m-d",strtotime($this->from_date)).'" AND create_date<="'.date("Y-m-d",strtotime($this->to_date)).'"';
    }
    $criteria->compare('user_id',$this->user_id);
    $criteria->compare('lokasi',$this->lokasi,true);
    $criteria->compare('satisfy_val',$this->satisfy_val,true);
    $criteria->compare('create_date',$this->create_date,true);
    return new CActiveDataProvider($this, array(
       'criteria'=>$criteria,
       'sort'=>array(
       'defaultOrder'=>array('create_date DESC',)),
        'pagination'=>array(
                'PageSize'=>150
        ),
  ));
}

关于mysql - Yii 框架日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28958315/

相关文章:

php - Yii 将数据库连接限制为只读

mysql - 在运行时将 SQL Server 查询转换为 MongoDB 查询

Excel VBA - 在一系列日期上使用查找方法

css - bootstrap.css 中下拉菜单的唯一样式

java - org.springframework.web.bind.MissingServletRequestParameterException : Required Date parameter 'startTime' is not present

jquery - 使用 Jquery 设置 TextBox 值,其中设置了 TextMode ="date"属性

php - 我如何在 yii 模块中添加脚本和样式表

Mysql子查询顺序

MySQL:每隔两行更新一次字符串

mysql - 更新表的远程副本中的地址