Yii (CJuiDatePicker)

//реализация проста до банальности
//_form.php
    <div class="row">
        <?php echo $form->labelEx($model, 'e_date_start'); ?>
        <?php
        $this->widget('zii.widgets.jui.CJuiDatePicker', array(
            'name' => 'e_date_start',
            'model' => $model,
            'attribute' => 'e_date_start',
            'language' => 'ru',
            'options' => array(
                'showAnim' => 'fold',
            ),
            'htmlOptions' => array(
                'style' => 'height:20px;'
            ),
        ));
        ?>
        <?php echo $form->error($model, 'e_date_start'); ?>
    </div>
 //реализует добавление в базу. формат ввода 'd.m.Y'
для красивого вывода нужно сделать валидацию
//
protected function afterFind()
{
    foreach ($this->metadata->tableSchema->columns as $columnName => $column)
    {
        if ($column->dbType === 'date' || $column->dbType === 'timestamp'
                && $this->$columnName != '0000-00-00 00:00:00' 
                && $this->$columnName != null)
            $this->$columnName = date('d.m.Y H:i:s', strtotime($this->$columnName));          
    }        
 parent::afterFind();
}
 //смотрим тип поля и не пустое ли оно
//
protected function beforeSave()
{
    if (parent::beforeSave())
    {                      
       foreach ($this->metadata->tableSchema->columns as $columnName => $column)
        {
            if ($column->dbType === 'date' || $column->dbType === 'timestamp')
                $this->$columnName = date('Y-m-d H:i:s', strtotime($this->$columnName));
        }
        return true;
    }
    else
    {
        return false;
    }
}
 // перед сохранением меняем на вид понятный для базы


Комментарии

Популярные сообщения из этого блога

Пишем логи на C# (.NET). Легкий способ.

Средства для работы с базой данный PostgreSql