Php yii:小部件中的日期格式已更改,但仍存储为000-00-00

Php yii:小部件中的日期格式已更改,但仍存储为000-00-00,php,yii,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,

我将以下
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',
                ),
            ));
当我捕捉到发送到控制器
save()
操作的
$\u参数
时,它显示日期被发送为
01-01-2014


但是它被存储为
0000-00-00
。我应该去哪里?它似乎被设置为某个地方的
yyyy-mm-dd
格式。顺便说一句,我是通过giix生成模型的。

如果您使用的是
DATE
mysql字段类型,您需要确保
dateFormat
日期
字段返回正确的格式。在这种情况下,
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
                    ...
               ),
));
?>


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

为什么不查看数据库表中列的格式。这会导致错误
属性“CJuiDatePicker.mode”未定义。
Ah我的答案基于
cguidatetimepicker
而不是
cguidatepicker
-我已更新了我的答案