繁体   English   中英

CakePHP中的Daterangepicker日期默认为零

[英]Daterangepicker date defaults to zero in CakePHP

我正在开发一个小的应用程序使用CakePHP,我需要保存一个startdateenddate的事件。 我使用了Bootstrap Daterangepicker,以便用户直观地输入日期。

在我的add.ctp视图中,我有两个字段:

<div class="form-group">
  <?php echo $this->Form->input('start', array(
    'class' => 'form-control',
    'type' => 'text', 
    'id' => 'start',
    'name' => 'start',
    'data-mask')); ?>
</div><!-- .form-group -->
<div class="form-group">
  <?php echo $this->Form->input('end', array(
    'class' => 'form-control',
    'type' => 'text', 
    'id' => 'end', 
    'name' => 'end',
    'data-mask')); ?>
</div>

以及控制输入的Javascript:

<script type="text/javascript">
  $(function() {
    $('input[name="start"]').daterangepicker({
      timePicker24Hour: true,
      singleDatePicker: true,
      timePicker: false,
      timePickerIncrement: 30,
      locale: {
        format: 'YYYY-MM-DD HH:mm:ss'
      }
    });
    $('input[name="end"]').daterangepicker({
      timePicker24Hour: true,
      singleDatePicker: true,
      timePicker: false,
      timePickerIncrement: 30,
      locale: {
        format: 'YYYY-MM-DD HH:mm:ss'
      }
    });
  });
</script>

选择器工作正常,可以正确更新字段值,但是当我尝试保存表单时,开始字段将被写入数据库,如下所示:

开始注册00:00:00
结束(空)

如果我恢复到字段的默认配置,则开始字段和结束字段的表单数据将正确保存。

任何有关我失败之处的线索将不胜感激。

尝试这样的事情

$correctdate = date("Y-m-d j:h:m",strtotime($yourdate));

这不是一个很好的代码和平,但是它应该有助于朝正确的方向进一步发展。 我们将这个字符串作为时间戳记。 然后,将其更改为适当的日期时间值。

好的,所以我将文本传递到datetime字段,并且保存操作失败。 为了解决这个问题,我必须通过在模型的beforeSave()函数中处理字符串,将字符串转换为正确的类型。

这是对我有用的代码:

public function beforeSave($options = array()) {

    if (!empty($this->data['Task']['start']) && !empty($this->data['Task']['end'])) {

        $this->data['Task']['start'] = $this->dateFormatBeforeSave($this->data['Task']['start']);
        $this->data['Task']['end'] = $this->dateFormatBeforeSave($this->data['Task']['end']);
        }

        return true;
    }


public function dateFormatBeforeSave($dateString) {
    return date('Y-m-d h:m:s', strtotime($dateString));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM