Hola colega si creo haber comprendido bien necesitas conocer 2 elementos:
Primero, cómo detrminar busquedas o validaciones a partir de rangos de fechas. Yo tengo unos posts sobre ese tema pero como estan en el foro en ingles prefiero explicarte desde 0…
Tomese que vas a determinar un limite superior y otro inferior para las fechas, osea despues de este dia y antes de este otro y ello lo vas a especificar para realizar filtrajes en un DataGrid.
En ese caso comienzas por el modelo. En este ejemplo tenemos un campo Fecha en la tabla tbl_maestra_masa; en consecuencia tengo un Modelo MaestraMasa y un atributo Fecha.
1- Declaro dos variables para manejar el rango de fecha: $date_upper_limit y $date_lower_limit
…
*/
class MaestraMasa extends CActiveRecord
{
public $date_upper_limit;
public $date_lower_limit;
/**
* @return string the associated database table name
*/
public function tableName()
{
return 'tbl_maestra_masa';
}
…
2- luego las declaro en las reglas para poder buscar mediante su empleo
…
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
...
array('Id, ..., Cantidad, Fecha, date_upper_limit, date_lower_limit', 'safe', 'on'=>'search'),
...
);
}
…
3- En la funcion search las planteo con el uso del metodo addBetweenCondition perteneciente a CDbCriteria
…
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
...
$criteria->addBetweenCondition('Fecha',''.$this->date_upper_limit.'', ''.$this->date_lower_limit.'');
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
…
4 - Luego en mi archivo _search.php agrego este codigo planteando las variables asociadas a un DatePicker
…
<div class="control-group">
<?php echo $form->label($model, 'date_upper_limit', array('class'=>'control-label')); ?>
<div class='controls'>
<?php $this->widget('zii.widgets.Jui.CJuiDatePicker', array('model'=>$model, 'attribute'=>'date_upper_limit', 'value'=>$model->date_upper_limit, 'options'=>array('dateFormat'=>'yy-mm-dd'))); ?>
</div>
</div>
<div class= "control-group">
<?php echo $form->label($model, 'date_lower_limit', array('class'=>'control-label')); ?>
<div class= 'controls'>
<?php $this->widget('zii.widgets.Jui.CJuiDatePicker', array('model'=>$model, 'attribute'=>'date_lower_limit', 'value'=>$model->date_lower_limit, 'options'=>array('dateFormat'=>'yy-mm-dd'))); ?>
</div>
</div>
…
Así te debe funcionar…
El otro elemento es la fecha actual
Esa determinala de este modo segun el formato que le quieras dar (yo te recomiendo este)
date(‘Y-m-d’);
Si no te comprendí o deseas ampliar en alguna otra vertiente de tu duda, dime y seguimos intercambiando…De todas formas escribe y dinos si te sirvió y por favor tu opinión de la calidad del post para tratar de hacerlo lo mejor posible para la comunidad Yii en Castellano…
Suerte y éxitos…