====== Trabajar con fechas ====== El formato de fecha en las bases de datos tiene la estructura inglesa: año-mes-dia para fechas(tipo date) y año-mes-dia hora:minutos:segundos para datetime. Cuando insertamos registros en la base de datos o recuperamos información debemos hacerlo con este formato, que no coincide con el que utilizamos a la hora de presentarlas en español: dia/mes/año. Existen varias formas de solucionar el problema. Una consiste en sobreescribir los métodos **beforeSave** y **afterFind** de cada modelo que tenga datos de tipo date o datetime y cambiar el formato de los mismos (en beforeSave convirtiéndolos a Y-m-d y en afterFind a d/m/Y). Este sistema es óptimo, pero laborioso. La forma más sencilla es instalar la extensión [[http://www.yiiframework.com/extension/i18n-datetime-behavior/|DateTimeI18NBehavior]] y aplicarla mediante el método behaviors a las clases que contengan datos de tipo date o datetime . Esta extensión se encargará de hacer las conversiones correspondientes antes de salvar datos y después de leerlos de la base datos. Podemos descargar la clase DateTimeI18NBehavior en la carpeta components, y así, en los modelos pondremos: public function behaviors() { return array('datetimeI18NBehavior' => array('class' => 'DateTimeI18NBehavior')); } En los formularios, podemos utilizar el wiget CJuiDatePicker para solicitar datos de tipo fecha: $this->widget('zii.widgets.jui.CJuiDatePicker', array( 'model'=>$model, 'attribute'=>'fecha_envio', 'options'=>array( 'dateFormat'=>'dd/mm/yy', 'language'=>'es', 'minDate'=>'+1d', //La fecha ha de ser como mínimo mañana ), ));