2016-05-05 6 views
1

こんにちは私はYiiで初心者です。私はcreated_atの日付を保存するテーブルにデータを保存しています。しかし、私は "1462422044"のような整数である異なる日付フォーマットを取得しています。私はdd-mm-yyyy h:i:sに変更したいと思います。 この日付形式を変更するにはどうすればよいですか?Yiiで日付形式を変更するには

マイMaster.php

public function behaviors() { 
     return [ 
      'timestamp' => [ 
       'class' => TimestampBehavior::className(), 
       'attributes' => [ 
        ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'], 
        ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_at', 
       ], 
       'value' => function() { 
      return time(); 
     }, 
      ], 
      'user' => [ 
       'class' => UserBehavior::className(), 
       'attributes' => [ 
        ActiveRecord::EVENT_BEFORE_INSERT => ['created_by', 'updated_by'], 
        ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_by', 
       ], 
       'value' => function() { 
      return \Yii::$app->user->id == '' ? 0 : \Yii::$app->user->id; 
     }, 
      ], 
     ]; 
    } 

マイ共通/モデル/ product.php

public function behaviors() { 
     return [ 
      BlameableBehavior::className(), 
      TimestampBehavior::className(), 
     ]; 
    } 
    /** 
    * @inheritdoc 
    */ 
    public function rules() 
    { 
     return [ 
      [['parent_id', 'created_by', 'updated_by'], 'integer'], 
      [['category_name'], 'required'], 
      [['created_at', 'updated_at'], 'safe'], 
      [['category_name'], 'string', 'max' => 100], 
     ]; 
    } 
+0

dbでcreated_byのデータ型は何ですか? – Chinmay

+0

私はdatetime in dbを持っています。 –

+0

私はエラーが発生しています:不正確な日付の値: '1462422994'列 'created_at'の行1にあるため、データベースに値のデータ型があります。 –

答えて

1

データ型がデータベース内のdatetimeの場合、値をこの形式の "Y-m-d H:i:s"形式に変換して保存する必要があります。 created_atフィールドは現在の日付と時刻を保存することを意味します。以下のコードを試してみてください。ここで私のモデル変数はあなたの変数名で置き換える必要がある$ modelです。以下は、現在のdatetimeを保存する場合の1つの方法です。

$model->created_at= date('Y-m-d H:i:s'); 

は、ここでは、あなたの変数を形成変換できる第二の方法です。あなたが$currentDateにあなたの価値を得たとしたら、あなたは以下のコードのようにこれを行うことができます。

$model->created_at= date('Y-m-d H:i:s',strtotime($currentDate)); 
1

変更あなたのコード以下のように:

public function behaviors() { 
     return [ 
      'timestamp' => [ 
       'class' => TimestampBehavior::className(), 
       'attributes' => [ 
        ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'], 
        ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_at', 
       ], 
       'value' => function() { 
      return date('d-m-Y h:i:s'); 
     }, 
      ], 
      'user' => [ 
       'class' => UserBehavior::className(), 
       'attributes' => [ 
        ActiveRecord::EVENT_BEFORE_INSERT => ['created_by', 'updated_by'], 
        ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_by', 
       ], 
       'value' => function() { 
      return \Yii::$app->user->id == '' ? 0 : \Yii::$app->user->id; 
     }, 
      ], 
     ]; 
    } 

時間( ) への変更 日付( 'd-m-Y h:i:s')。

+1

ありがとうございます。同じ結果を取得しています。行1の 'created_at'列の '1462423477' –

関連する問題