Saltar al contenido

Datepicker en Yii está almacenando datos en formato yy MM d

Nuestro grupo de expertos pasados muchos días de trabajo y de recopilar de información, encontramos la solución, queremos que te sea de utilidad en tu trabajo.

Solución:

Prueba esto:

protected function afterFind()
    parent::afterFind();
    $this->due_date=date('d F, Y', strtotime(str_replace("-", "", $this->due_date)));       


protected function beforeSave()
    if(parent::beforeSave())
        $this->due_date=date('Y-m-d', strtotime(str_replace(",", "", $this->due_date)));
        return TRUE;
    
    else return false;

Agregue el código anterior a su modelo. Y debería funcionar.

Tuve un problema similar con las fechas europeas, formateadas como: ‘dd/mm/yyyy’, y esto es lo que uso:

En las reglas del modelo:

    public function rules()
{
    // NOTE: you should only define rules for those attributes that
    // will receive user inputs.
    return array(
        array('date','date','format'=>Yii::app()->locale->getDateFormat('medium')),

porque el formato de configuración regional ‘medio’ se ajusta a mis necesidades de validación.

En la forma que uso:

            labelEx($model,'date'); ?>
            widget('zii.widgets.jui.CJuiDatePicker', array(
                //'name'=>'date',
                'model'=>$model,
                'attribute'=>'date',
                'language'=>Yii::app()->language=='es' ? 'es' : null,
                'options'=>array(
                    'changeMonth'=>'true', 
                    'changeYear'=>'true',   
                    'yearRange' => '-99:+2',        
                    'showAnim'=>'fold', // 'show' (the default), 'slideDown', 'fadeIn', 'fold'
                    'showOn'=>'button', // 'focus', 'button', 'both'
                    'dateFormat'=>'dd/mm/yy',
                    'value'=>date('dd/mm/yy'),
                    'theme'=>'redmond',
                    'buttonText'=>Yii::t('ui','Select form calendar'), 
                    'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.gif', 
                    'buttonImageOnly'=>true,
                ),
                'htmlOptions'=>array(
                    'style'=>'vertical-align:top',
                    'class'=>'span2',
                ),  
            ));?>
            error($model,'date'); ?>

Y la conversión de nuevo al formato MySQL, para guardar, comparar fechas…:

$date=strftime('%Y-%m-%d', strtotime(str_replace("/", "-", $this->date)));

Espero que esto ayude.

Sección de Reseñas y Valoraciones

Tienes la opción de añadir valor a nuestra información contribuyendo tu veteranía en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *