rules使用datetime

平常数据库使用​​datetime​​​这种数据格式,一般也在​​model​​​的​​rules​​里也定义好:

public function rules()
{
return [
[['create_at'], 'datetime']
];
}

那表单提交后怎么转换为这种格式呢?一般使用Yii2的​​formatter​​,在配置文件中添加这样的代码:

配置formatter

return [
'components'=>[
'formatter'=>[
'defaultTimeZone'=>'Asia/Shanghai',
'dateFormat'=>'yyyy-MM-dd',
'timeFormat'=>'HH:mm:ss',
'datetimeFormat'=>'yyyy-MM-dd HH:mm:ss'
]
]
]

这样就配置好​​formatter​​了。

使用formatter转换为datetime

现在模型就可以使用默认格式化的​​datetime​​了。

$model = new Article();
// 转换为配置文件里datetimeFormat的格式
$model->create_at = Yii::$app->formatter->asDatetime('now');

参考:​​https://www.yiiframework.com/doc/guide/2.0/en/output-formatting​