yii:更改了widget中的日期格式,但仍然存储为000-00-00

时间:2014-02-05 08:39:41

标签: php yii

我将以下yy-mm-dd更改为dd-mm-yy,数据库显示日期字段设置为0000-00-00

_form.php这个

$form->widget('zii.widgets.jui.CJuiDatePicker', array(
            'model' => $model,
            'attribute' => 'datestart',
            'value' => $model->datestart,
            'options' => array(
                'showButtonPanel' => true,
                'changeYear' => true,
                'dateFormat' => 'dd-mm-yy',
                ),
            ));

当我抓住$_PARAM被发送到控制器save()操作时,它会显示日期是01-01-2014发送的。

然而,它会被存储为0000-00-00。我应该在哪里看?似乎它设置为在某处预期yyyy-mm-dd格式。我通过giix btw生成模型。

2 个答案:

答案 0 :(得分:0)

如果您使用的是DATE mysql字段类型,则需要确保dateFormat返回DATE字段的正确格式。在这种情况下,altFormat是向用户显示的格式。另外,添加name属性也是如此:

<?php 
$form->widget('zii.widgets.jui.CJuiDatePicker', array(
    'model'=>$model,
    'attribute'=>'datestart',
    'value'=>$model->datestart,
    'name'=>$model->datestart,
    'options'=>array(
                    ...
                    'dateFormat'=>'yy-mm-dd',  // save format
                    'altFormat'=>'dd-mm-yy',  // show format
                    ...
               ),
));
?>

答案 1 :(得分:0)

我认为你使用mysql作为数据库和mysql日期字段只接受 YYYY-mm-dd 格式的日期值。它不接受其他格式。因此,如果您以 YYYY-mm-dd 格式传递日期,那么它将正确存储,否则它会将0000-00-00存储为日期。