CakePHP:日期时间文本
问题描述:
我想插入一个日期时间使用简单的文本输入(而不是日期时间输入),但有一些错误。CakePHP:日期时间文本
例如,我将在此日期:
2015-09-07 15:10
我的代码:
debug($this->request->data['created']);
$post = $this->Posts->patchEntity($post, $this->request->data);
debug($post->created);
输出:
/home/mirko/Server/MeCms_Plugin/src/Controller/Admin/PostsController.php (line 158)
'2015-09-07 15:10'
/home/mirko/Server/MeCms_Plugin/src/Controller/Admin/PostsController.php (line 160)
object(Cake\I18n\Time) {
'time' => '2013-03-07T15:10:00+0000',
'timezone' => 'UTC',
'fixedNowTime' => false
}
为什么会出现这种情况? 我怀疑在将字符串转换为Time
对象时出现问题。
谢谢。
答
看着你的MySQL表的data type
例如:更改日期为VARCHAR(50)
或者试试这个代码:
$date = new DateTime($post->created);
$srt_date = $date->format('Y-m-d H:i:s');
如果你'$数据您能得到什么= $这个 - >请求 - >数据; $ data ['created'] = new Time($ data ['created']);''和''patchEntity' with'$ data'? (不要忘记添加'use Cake \ I18n \ Time;'。 – Holt
Hi @Holt,这是有效的。为什么? –
您是在修补一个新的空实体还是保存现有数据?如果是后者,你是否确信价值实际上正在发生变化?也就是说,你正在调试的是不是已经存在的价值?如果价值实际上正在改变,或者设置为空实体,我建议深入研究'\ Cake \ Database \ Type \ DateTimeType :: marshal()'并调试日期改变的地方。 – ndm