如何在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', '更新时间'),
        ];
    }
}
最佳答案
其他 2 个回答
- 
 - 

文档中貌似有种做法是这样的,但是要求不能使用asArray() queryBuilder,如下
//in User public function getFormattedTime(){//具体的名字自己想啦 return Yii::$app->formatter->asDatetime($this->updated_at);//created_at等 } //in View //假设此时拿出一篇文章 echo $post->formattedTime;//格式化的事件 //假设此时多篇文章 foreach($posts as $post){ echo $post->formattedTime; }上面的方式可以避免在view中格式化数据,实现复用,如果考虑model职责混乱,考虑将这些代码封装到行为中去。
 
qq3737002 河南郑州
            注册时间:2015-03-29
最后登录:2022-07-04
在线时长:59小时26分
    最后登录:2022-07-04
在线时长:59小时26分
- 粉丝31
 - 金钱4498
 - 威望170
 - 积分6788