如何在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