加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用bootstrap datetimepicker在cakephp 3.x中正确保存DateTime

发布时间:2020-12-17 21:24:37 所属栏目:安全 来源:网络整理
导读:我正在使用cakephp 3.x,我有一个表单,其中一个字段是日期.在后端我使用的是 mysql. 我在mysql中的字段结构是类型为date的dob. 现在在cakephp 3.x我使用下面的语法来创建输入. echo $this-Form-input('dob',array( 'label' = (__('Date of Birth')),'type' =
我正在使用cakephp 3.x,我有一个表单,其中一个字段是日期.在后端我使用的是 mysql.

我在mysql中的字段结构是类型为date的dob.

现在在cakephp 3.x我使用下面的语法来创建输入.

echo $this->Form->input('dob',array(
    'label' => (__('Date of Birth')),'type' => 'text','required' => false,'class' => 'form-control date'
));

我曾经使用过bootstrap datetimepicker,

$('.date').datetimepicker({
    format: 'YYYY-MM-DD'
});

现在,当我提交表格时,我打印了当时的请求数据,我得到了这样的字段

[
....
'dob' => '2016-02-11',....
]

但是当我保存记录并查看数据库时,它会显示我的随机日期,如2036-10-25

有人可以帮我吗?

解决方法

这是最终的通用解决方案,

//File : src/Model/Table/PatientsTable.php
namespace AppModelTable;

use CakeORMTable;
use CakeEventEvent;
use ArrayObject;
use CakeI18nTime;

class PatientsTable extends Table
{
    ...
    ...
    public function beforeMarshal(Event $event,ArrayObject $data,ArrayObject $options)
    {
        if (isset($data['dob'])) {
            $data['dob'] = Time::parseDate($data['dob'],'Y-M-d');
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读