我想将当前系统时间添加到数据库中,同时在“time_created”列中插入新记录到数据库中。 PHP的time()函数在yii2中没有支持。我想要yii2特定的时间功能,这将帮助我保存当前的时间戳。有谁知道????
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()'),
],
];
}
您也可以使用Yii2
的formatter
,如下所示:
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
也许这是旧的,但它可能会帮助其他人。在模型中添加以下代码。确保将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()'),
],
];
}
您可以使用yii \ db \ Expression来执行SQL函数
<?php
use yii\db\Expression;
$model->time_created = new Expression('NOW()');
$model->save();
你可以简单地使用PHP的date()
函数 - date('Y-m-d H:i:s');
有几种方法可以添加时间戳,我建议使用UNIX时间戳来处理时区。例如,在Google SQL实例中,您无法设置时区,而是设置偏移量,这意味着由于夏季/冬季时间,您需要每年更新两次偏移量。因为有人提到你也可以使用行为:
public function behaviors()
{
return [
[
'class' => AttributeBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => 'entry_date',
],
'value' => function ($event) {
return time();
},
],
];
}
或者你可以简单地在插入之前添加,比如$model->entry_date=time();
但是你会在每个INSERT
上做到这一点然后行为是更好的选择。
当然,如果您想阅读格式化日期,您可以使用:
\Yii::$app->formatter->asDate($model->entry_date);
对于日期格式,您可以在这里阅读:qazxsw poi