pMa*_*Man 3 mysql cakephp date
我在cakephp项目中有这个代码:
$this->data['MyObject']['expire_date'] = 'NOW()';
Run Code Online (Sandbox Code Playgroud)
和...
$this->MyObject->save($this->data);
Run Code Online (Sandbox Code Playgroud)
但这不会保存数据库中的数据.谷歌搜索后,我发现我可以像这样使用now().但似乎错了,使用它的正确方法是什么?
PS:我的MySQL字段是'DATE'类型.如果我像这样使用它是有效的:
$this->data['MyObject']['expire_date'] = date( 'Y-m-d', mktime(0, 0, 0, date("m"), date("d")+30, date("Y")));
Run Code Online (Sandbox Code Playgroud)
小智 17
$this->data['MyObject']['expire_date'] = DboSource::expression('NOW()');
Run Code Online (Sandbox Code Playgroud)
对于cakephp 2.x用户:
$db = $this->MyObject->getDataSource();
$this->data['MyObject']['expire_date'] = $db->expression('NOW()');
Run Code Online (Sandbox Code Playgroud)
你可以缩短它
$this->data['MyObject']['expire_date'] = date('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
默认情况下,如果您没有传递第二个"timestamp"参数,则date()将占用当前时间.
DboSource::expression()当您想要在控制器中出于各种原因而不是在模型中设置它时,此方法更适合调用.