yii2保存日期格式如何1970-01-01数据库

时间:2016-09-19 13:42:54

标签: yii2 yii2-model

我在保存数据库中的数据时遇到问题。它将它们保存为1970-01-01,无效日期。我会将它们读作dd-mm-yyyy并将它们转换为yyyy-mm-dd中的数据库。

我的模特

public function behaviors()
{
    return [
        [
            'class' => AttributeBehavior::className(),
            'attributes' => [
                attribute ['created','updated']
                ActiveRecord::EVENT_BEFORE_INSERT => ['data_arrivo','data_part'],
                ActiveRecord::EVENT_BEFORE_UPDATE => 'data_arrivo', 'data_part'
            ],
            'value' => function ($event) {
                return date('Y-m-d', strtotime($this->data_part));
            },
        ],
    ];

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以在模型文件中使用beforeSave事件。在将记录保存到表中之前会调用它。

 public function beforeSave($insert) {
    if($this->data_part){
      $this->data_part = Yii::$app->formatter->asDate(strtotime($this->data_part), "php:Y-m-d");
    }
    return parent::beforeSave($insert);
  }

不发布我的代码



 public function beforeSave($insert) {
    if($this->data_part){
      
 $this->data_part = Yii::$app->formatter->asDatetime(strtotime($this->data_part), "php:Y-m-d");
    
    if($this->data_arrivo)
        $this->data_arrivo = Yii::$app->formatter->asDatetime(strtotime($this->data_arrivo), "php:Y-m-d");
    
  }
  return parent::beforeSave($insert);
}