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

yii2 save date format how 1970-01-01 Database

我在数据库中保存数据时遇到问题。它将它们保存为 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));
            },
        ],
    ];

有什么建议吗?

您可以在模型文件中使用 beforeSave 事件。它会在将记录保存到 table.

之前得到调用
 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);
  }

我 post 我的代码不工作

 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);
}