cakephp 如何使用一个日期和时间间隔创建和保存表单
Posted
技术标签:
【中文标题】cakephp 如何使用一个日期和时间间隔创建和保存表单【英文标题】:cakephp how to create and save form with one date and time interval 【发布时间】:2021-12-16 18:56:40 【问题描述】:Cakephp 3.2
我在 mysql 表中有 [start_time]&[end_time]datetime 字段。
我的表单为Form image
现在我想保存您在图片中看到的日期和时间间隔。
如何将[start_time]&[end_time]设置为相同的日期以及如何保存和显示保存的日期和时间间隔以查看
我是 PHP 世界的新手 我会感谢你的帮助
我的 ctp html 文件是这样的
<tr>
<th>date</th>
<th class="require"><span class="red">※</span></th>
<td colspan="3">
<input type="text" class="calendar" value="">
<select>
<!-- hour -->
<option value="1">0</option>
</select>:
<select>
<!-- minutes -->
<option value="0">00</option>
</select> ~
<select>
<!-- hour -->
<option value="1">0</option>
</select>:
<select>
<!-- minutes -->
<option value="">00</option>
</select>
</td>
</tr>
【问题讨论】:
【参考方案1】:*注意:这是一个小demo,请参考 cakephp 传送门深入学习。
在表格中取表格
现在你有 3 个字段 -
日期 - 文本字段:将其命名为 input_date
2 个时间字段(下拉菜单): 小时:将其命名为 start_tm[0] (
$this->Form->select('start_tm.0',[values here],[options]);
)
分钟:将其命名为 start_tm[1]
同样 - end_tm[0],end_tm[1]
在控制器处
// 假设您的模型名称是“TimeSlots”
$data = $this->request->getData();
// 获取请求数据(post)
// 在服务器端进行验证.......(我没有添加)
// 根据您的 db 表的要求格式化输入
$start_time_text = $data['input_date'] . ' ' . implode(':',$data['start_tm']);
$end_time_text = $data['input_date'] . ' ' . implode(':',$data['end_tm']);
//(您的日期文本现在看起来像 yyyy/mm/dd h:mm)
// 格式化为日期时间文本
$data['start_time'] = date('Y-m-d H:i:s', strtotime($start_time_text));
$data['end_time'] = date('Y-m-d H:i:s', strtotime($end_time_text));
$timeSlot = $this->TimeSlots->newEntity($data); // you can set validation at the model - see cakephp ORM
if($this->TimeSlots->save($timeSlot))
$this->Flash->success(__('Saved successfully'));
else
$this->Flash->success(__('Some error occurred'));
【讨论】:
以上是关于cakephp 如何使用一个日期和时间间隔创建和保存表单的主要内容,如果未能解决你的问题,请参考以下文章