我$model->created = date("Y-m-d H:m:s");
经常使用 MySQL 友好格式获取当前日期时间,并希望将那一点点放入适合重用的地方。我意识到有很多方法可以做到这一点,但是“Yii”的方法是什么?
问问题
117 次
2 回答
2
我有一个 BaseModel,大多数模型都继承自它。beforeSave()
如果没有设置,我在函数中执行 dateCreated 的设置。另外,我正在使用一个名为 LocalTime 的组件。见http://www.yiiframework.com/wiki/197/local-time-zones-and-locales/
class BaseModel extends CActiveRecord {
protected function beforeSave() {
parent::beforeSave();
if($this->hasAttribute('dateCreated') && $this->isNewRecord)
$this->dateCreated = Yii::app()->localtime->getUTCNow();
...
return $this;
}
如果您决定使用 LocalTime 组件,请确保在查找时从 UTC 转换回本地时间:
protected function afterFind() {
parent::afterFind();
if($this->hasAttribute('dateCreated'))
$this->dateCreated = Yii::app()->localtime->fromUTC($this->dateCreated);
...
return $this;
}
于 2013-02-27T09:16:28.597 回答
1
你可以使用 yii 的内置行为,命名为CTimestampBehavior
.
class YourModel extends CActiveRecord
{
public function behaviors()
{
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute'=>'created',
)
);
}
}
它是高度可定制的。您还可以指定updateAttribute
设置更新时间、timestampExpression
指定备用日期格式等。
于 2013-02-27T11:30:54.080 回答