2013-04-18 168 views
0

我在yii框架中使用EJuiDateTimePicker扩展的日期和时间选择器。我已经下载EJuiDateTimePicker和保护下\扩展放在\瑞EJuiDateTimePicker值没有保存到数据库

浏览:

$this->widget(
        'ext.jui.EJuiDateTimePicker', 
        array(
         'model'  => $model, 
         'attribute' => 'todo_datetime', 
         'value' => $model->todo_datetime, 
         'options' => array(
          'dateFormat' => 'dd-mm-yy', 
          'timeFormat' => 'hh:mm:ss',//'hh:mm tt' default 
         ), 
        ) 
       ); 

行动:

if(isset($_POST['Todo'])) 
{ 
    $model->attributes=$_POST['Todo']; 
       if($model->save()) 
     $this->redirect(array('view','id'=>$model->id)); 
} 

问题:

的保存价值在数据库表中是0000-00-00 00:00:00它没有考虑日期时间选择器的价值。

编辑:

模型验证

return array(
    array('todo_text, todo_datetime, priority, status', 'required'), 
    array('priority, status', 'numerical', 'integerOnly'=>true), 
    // The following rule is used by search(). 
    // Please remove those attributes that should not be searched. 
    array('todo_text, todo_datetime, added_on, priority, status', 'safe', 'on'=>'search'), 
); 
+1

向我们展示你的模型验证规则 – soju

+1

什么是你的分贝的日期字段(日期时间,时间戳,...)? – darkheir

+0

我有日期时间作为数据类型 – CodeManiac

回答

0

嘛,没什么好奇怪的,你应该用你的小部件,并在数据库中同一日期的格式,实际上是:

    您的小工具中的
  • dd-mm-yy hh:mm:ss
  • 在数据库:yyyy-mm-dd hh:mm:ss

可以使用的getter/setter或beforeSave /一个afterFind对付这个共同的问题,这里是一个简单例如,使用的getter/setter:

在你的模型

public $dateTimeIncomeFormat = 'yyyy-MM-dd H:mm:ss'; 
public $dateTimeOutcomeFormat = 'dd-MM-yy H:mm:ss'; 

public function getDateTime() 
{ 
    return Yii::app()->dateFormatter->format($this->dateTimeOutcomeFormat, CDateTimeParser::parse($this->todo_datetime, $this->dateTimeIncomeFormat)); 
} 

public function setDateTime($datetime) 
{ 
    $this->todo_datetime = Yii::app()->dateFormatter->format($this->dateTimeIncomeFormat, CDateTimeParser::parse($datetime, $this->dateTimeOutcomeFormat)); 
} 

这将创建一个可以在你的widget使用dateTime虚拟属性。 不要忘记在模型验证规则中添加此属性。

http://www.yiiframework.com/doc/guide/1.1/fr/topics.i18n#date-and-time-formatting

+0

我有正确的日期时间格式在小工具选项'选项'=>数组( 'dateFormat'=>'yy-mm-dd', 'timeFormat'=>'h:mm:ss' ,//'hh:mm tt'默认 ), – CodeManiac