Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 框架日期范围_Mysql_Date_Yii - Fatal编程技术网

Mysql 框架日期范围

Mysql 框架日期范围,mysql,date,yii,Mysql,Date,Yii,如果FROM_date:2015-02-05和to_date:2015-02-10在gridview中仅显示日期为05,06,07,08,09且仅日期为10-02的数据,我在Yii中查找日期范围时遇到问题,但该数据未显示。 在另一种情况下,如果我希望搜索一个从2015-02-21到2015-02-21的日期范围,则应显示日期为2015-02-21的数据 如何解决这个问题?一个如何应该是正确的代码 模型 谢谢您可以使用以下代码搜索日期范围 if((isset($this->from_date

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

模型


谢谢

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

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
        ),
  ));
}

感谢您的帮助和回复。我试过你创建的代码,但结果是一样的,奇怪的是,如果你的代码被放在$criteria->compare'create_date',$this->create_date,true;搜索日期范围与“开始日期”和“结束日期”不同,运行良好,但按用户和lokasi分组不起作用。具有相同起始日期和结束日期的另一个条件不起作用。如何解决此问题?from_date和to_date是数据库中独立的列字段?否,仅创建_date列,from_date和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
        ),
  ));
}