You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CakePHP 3 编辑页FormHelper中数据库日期无法在日期选择器正常显示问题

问题根因

HTML原生date类型输入框仅支持YYYY-MM-DD格式的默认值赋值,你当前传递的是带时间、时区标识的完整ISO 8601格式字符串(例如2021-10-08T00:00:00+00:00),浏览器无法识别匹配该格式,因此不会回填显示。你之前用strtotime()转换无效大概率是没有后续将时间戳格式化为Y-m-d格式,就直接赋值给了输入框。

解决方案

CakePHP传递到视图的日期字段默认是DateTime对象,直接调用format方法格式化后再赋值给value即可,修改后的代码如下:

date_of_purchase字段:

<div class="col-sm-4">
   <?= $this->Form->input('date_of_purchase', array(
       'type' => 'date', 
       'required' => 'required', 
       'class' => 'form-control date', 
       'value' => $asset->date_of_purchase->format('Y-m-d')
   )) ?>
</div>

date_of_entry字段:

<div class="col-sm-4">
  <?= $this->Form->input('date_of_entry', array(
      'type' => 'date', 
      'required' => 'required', 
      'class' => 'form-control date', 
      'value' => $asset->date_of_entry->format('Y-m-d')
  )) ?>
</div>

如果版本限制无法直接调用DateTime的format方法,也可以用PHP原生函数转换格式:

'value' => date('Y-m-d', strtotime($asset->date_of_purchase))

内容的提问来源于stack exchange,提问作者Kovo_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:27:02