如何在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职责混乱,考虑将这些代码封装到行为中去。