谁一开始就是大神?

如何在find()后将时间戳转换成日期格式[2.0]

如何在find()->asArray()->all()的结果中将时间戳转换成2015-06-18 16:33:23这种格式?

yii2 原封不动的 User模型

<?php

namespace backend\modules\core\models;

use Yii;
use yii\db\ActiveRecord;

class User extends ActiveRecord
{

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%user}}';
    }

    public function attributeLabels()
    {
        return [
            'id' => Yii::t('app', '用户ID'),
            'username' => Yii::t('app', '用户名'),
            'auth_key' => Yii::t('app', '认证key'),
            'password_hash' => Yii::t('app', '密码'),
            'password_reset_token' => Yii::t('app', '密码重置令牌'),
            'mobile' => Yii::t('app', '手机'),
            'email' => Yii::t('app', '电子邮件'),
            'status' => Yii::t('app', '用户状态'),
            // created_at,updated_at为时间戳例如1434616403
            'created_at' => Yii::t('app', '创建时间'),
            'updated_at' => Yii::t('app', '更新时间'),
        ];
    }

}

都有时间戳了,不是在要用时间的时候转换一下就行了么?
我理解有误?
find是生成sql语句的,所以要像格式化时间就得用sql的DATE_FORMAT来格式化,建议不要这样做。
可以把sql查询出来的时间,在视图里用php来格式化更通用一些。
文档中貌似有种做法是这样的,但是要求不能使用asArray() queryBuilder,如下
上面的方式可以避免在view中格式化数据,实现复用,如果考虑model职责混乱,考虑将这些代码封装到行为中去。

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 如何在find()后将时间戳转换成日期格式[2.0]

评论 抢沙发

登录

找回密码

注册