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

如何使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:47:03