如何使用input type="time"将时分分别存入hour、minute字段并入库?
如何用
<input type="time">拆分时分并存储到对应数据库字段 当然可以实现这个需求,下面分前端处理和后端适配两部分给出具体方案,完全兼容你现有PHP代码的逻辑:
方案一:后端直接解析<input type="time">的值(推荐,更安全)
<input type="time">提交的格式固定为HH:MM,后端可以直接拆分出小时和分钟,赋值给你现有代码中的hora和minuto字段:
1. 前端表单代码
<form method="post" action="你的调度处理脚本.php"> <!-- 时间选择控件 --> <input type="time" name="schedule_time" required> <!-- 其他调度相关字段 --> <button type="submit">保存调度</button> </form>
2. PHP后端处理逻辑
在你现有代码的开头,先接收并拆分时间值:
// 接收表单提交的时间 if (isset($_POST['schedule_time'])) { $time_str = $_POST['schedule_time']; // 验证时间格式合法性(避免非法值) if (!preg_match('/^([01]\d|2[0-3]):([0-5]\d)$/', $time_str)) { die("请输入有效的时间格式"); } // 拆分小时和分钟 list($hour, $minute) = explode(':', $time_str); // 赋值给现有代码用到的数组字段 $dados_agendamento["hora"] = $hour; $dados_agendamento["minuto"] = $minute; $dados_acao["hora"] = $hour; $dados_acao["minuto"] = $minute; }
这样后续你原有的$descricao拼接代码完全不需要修改,直接就能使用拆分后的hora和minuto值,最终存入数据库即可。
方案二:前端实时拆分时间到指定字段
如果需要把小时和分钟分别存入id为hour和minute的表单字段(比如隐藏字段),可以用JavaScript实时处理:
1. 前端表单代码
<form method="post" action="你的调度处理脚本.php"> <input type="time" id="schedule_time" required> <!-- 隐藏字段存储拆分后的时分 --> <input type="hidden" name="hour" id="hour"> <input type="hidden" name="minute" id="minute"> <!-- 其他调度相关字段 --> <button type="submit">保存调度</button> </form> <script> const timeInput = document.getElementById('schedule_time'); timeInput.addEventListener('change', function() { const [hour, minute] = this.value.split(':'); // 把值写入对应字段 document.getElementById('hour').value = hour; document.getElementById('minute').value = minute; }); </script>
2. PHP后端处理逻辑
直接接收拆分后的字段值即可:
if (isset($_POST['hour'], $_POST['minute'])) { // 验证合法性 $hour = intval($_POST['hour']); $minute = intval($_POST['minute']); if ($hour < 0 || $hour > 23 || $minute < 0 || $minute > 59) { die("请输入有效的时分值"); } // 赋值给现有数组 $dados_agendamento["hora"] = $hour; $dados_agendamento["minuto"] = $minute; $dados_acao["hora"] = $hour; $dados_acao["minuto"] = $minute; }
注意事项
- 无论哪种方案,都要做合法性验证,避免非法的时分值(比如25小时、61分钟)存入数据库;
- 如果你数据库的
hora和minuto字段是整数类型,记得把拆分后的值转成整数再存储。
内容的提问来源于stack exchange,提问作者Ualace
相关产品推荐
相关产品推荐

