我在保存数据库中的数据时遇到问题。它将它们保存为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));
},
],
];
有什么建议吗?
答案 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);
}