如何在YII中从Db获取期间更改日期格式?

时间:2015-05-20 06:21:05

标签: php yii yii2

我在yii中使用rest api calla。

这是我的模特

class  User extends ActiveRecord
    {

    }

在控制器中,我通过以下代码

从db获取数据
$person = (new \yii\db\Query())
                ->select(['*'])
                ->from('person')
                ->all();

一个日期字段存在于person表格中(例如:createdTime)。

现在我得到了日期格式。在这里,我想改变很久。我在哪里可以更改/设置此对象的模型

1 个答案:

答案 0 :(得分:0)

如果您不想使用模型,可以在简单循环中更改它:

$results = (new \yii\db\Query())
    ->select(['*']) // you can omit this, it's redundant
    ->from('person')
    ->all();

foreach ($results as $key => $result) {
    $results[$key]['created_at'] = ... // replace with new value;
}

但我强烈建议您使用模型,然后您可以使用内置的ArrayHelper toArray()方法来处理属性值,甚至可以添加新属性/修改其名称。例如:

use app\models\User;
use yii\helpers\ArrayHelper;

...

$initialModels = User::find()->all();
$models = ArrayHelper::toArray($models, [
    'app\models\User' => [
        'created_at' => function ($model) {
            return ...; // Return new value here
        },
    ],
]);

官方文档中提供了更多信息。