如何在数据库中添加当前时间戳.格式是什么?

8 yii2

我想将当前系统时间添加到数据库中,同时在"time_created"列中插入新记录到数据库中.PHP的time()函数在yii2中没有支持.我想要yii2特定的时间功能,这将帮助我保存当前的时间戳.有谁知道????

aro*_*hev 9

Yii 2对此有特殊的行为.只需将其附加到模型上即可.将此添加到模型中的behaviors()方法:

use yii\behaviors\TimestampBehavior;
use yii\db\Expression;

public function behaviors()
{
    return [
        // Other behaviors
        [
            'class' => TimestampBehavior::className(),
            'createdAtAttribute' => 'time_created',
            'updatedAtAttribute' => false,
            'value' => new Expression('NOW()'),
        ],
    ];   
}
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用yii\db\Expression来执行SQL函数

<?php
use yii\db\Expression;

$model->time_created = new Expression('NOW()');
$model->save();
Run Code Online (Sandbox Code Playgroud)


Ali*_*our 6

您还可以使用Yii2formatter如下所示:

Yii::$app->formatter->asTimestamp(date('Y-d-m h:i:s')); //1410488596
Yii::$app->formatter->asDatetime(date('Y-d-m h:i:s')); //Sep 12, 2014, 2:21:56 AM
Run Code Online (Sandbox Code Playgroud)


小智 5

也许这是旧的,但它可能会帮助其他人.在模型中添加以下代码.确保将更createdAttribute改为属性.你还必须包括:

use yii\behaviors\TimestampBehavior;
use yii\db\Expression;

public function behaviors()
{
    return [
        [
            'class' => TimestampBehavior::className(),
            'createdAtAttribute' => 'entry_date',
            'updatedAtAttribute' => false,
            'value' => new Expression('NOW()'),
        ],
    ];
}
Run Code Online (Sandbox Code Playgroud)