如何在Yii中更改日期格式

时间:2016-05-05 04:25:17

标签: php yii2

你好,我是Yii的新手。我将数据保存在一个保存created_at日期的表中。但我得到的是不同的日期格式,如" 1462422044" 。我想将其更改为dd-mm-yyyy h:i:s如何更改此日期格式?

我的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;
        },
            ],
        ];
    }

我的常用/ models / 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],
        ];
    }

2 个答案:

答案 0 :(得分: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)

如果您的数据类型是数据库中的日期时间,则必须将您的值转换为此格式" Y-m-d H:i:s"你可以这样做。和created_at字段表示您要存储当前日期和时间。所以尝试下面的代码希望它的工作正常。在这里,我的模型变量是$ model,你需要用变量名替换。如果您想存储当前日期时间,则以下是一种方法。

:errors="formErrors.security"

以下是您可以从变量转换的第二种方式。假设您将在$model->created_at= date('Y-m-d H:i:s'); 中获得您的价值,那么您可以像下面的代码那样执行此操作。

$currentDate