Yii2 使用DB表达式或PHP日期时间作为时间戳?

Yii2 使用DB表达式或PHP日期时间作为时间戳?,yii2,Yii2,我有一个时间戳行为(yii2),看起来像这样(取自用户指南示例) 但是使用PHP日期时间表达式不是更好吗 'value' => (new /DateTime('NOW'))->format('Y-m-d H:i:s') 在我看来,最好使用一个时钟,而不是两个时钟(如果数据库服务器是分开的,并且时间不同步,这是不可能的),特别是如果我在代码中使用DateTime来检查其他条件 哪种方法更好?为什么?Expression类在SQL查询中创建了一个DBMS函数,无论列中有哪种日期类型(或

我有一个时间戳行为(yii2),看起来像这样(取自用户指南示例)

但是使用PHP日期时间表达式不是更好吗

'value' => (new /DateTime('NOW'))->format('Y-m-d H:i:s')
在我看来,最好使用一个时钟,而不是两个时钟(如果数据库服务器是分开的,并且时间不同步,这是不可能的),特别是如果我在代码中使用DateTime来检查其他条件


哪种方法更好?为什么?

Expression
类在SQL查询中创建了一个DBMS函数,无论列中有哪种日期类型(或格式,在某些DBMS中可以强制使用日期格式),它都可以工作。如果更改某个行为的值,则应注意列的格式和类型是否匹配,否则有时会出现错误。

在yii2中使用DB Expressin的一个缺点是$model->save()后不会更新模型属性。它仍然包含“新表达式('NOW()')”。要获取实际值,需要使用“$model->refresh()”从数据库加载模型。通过使用PHP datetime,可以立即显示最终值。(在使用默认Rest类创建Rest API时发现了这一点。在创建某些内容后,返回的值仍然是表达式而不是值。)
'value' => (new /DateTime('NOW'))->format('Y-m-d H:i:s')