代码之家  ›  专栏  ›  技术社区  ›  Saba

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

  •  0
  • Saba  · 技术社区  · 8 年前

    我在数据库中保存数据时遇到问题。它将其保存为1970-01-01,日期无效。我会将其读取为dd-mm-yyyy,并将其转换为yyy-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 回复  |  直到 8 年前
        1
  •  1
  •   Saba    8 年前

    你可以使用 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);
    }