You need to enable JavaScript to run this app. PHP使用strval转数字为字符串并拼接GET时分输入为SQL TIME格式
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用strval转数字为字符串并拼接GET时分输入为SQL TIME格式

核心问题定位
  • 表单输入字段的属性拼写错误:两个input标签里写的是nome,但浏览器识别表单提交参数仅认**name属性**。nome是其他语言里“名称”的单词,不属于HTML标准属性,提交GET请求时,这两个输入框的值不会被拼接到URL参数中,PHP读取$_GET['h']、$_GET['m']时拿到的都是空值,最终拼接结果自然为::00。
  • 缺少参数兜底逻辑:就算修正属性拼写,用户未填写值、输入单数字的场景下,直接拼接会出现格式不符的问题,无法匹配SQL TIME类型要求的HH:MM:SS标准格式。
修复方案
  1. 修正HTML端的input属性拼写
    错误代码示例:
    <input type="number" nome="h" min="0" max="23">:
    <input type="number" nome="m" min="0" max="59">
    
    修正为标准HTML属性写法:
    <input type="number" name="h" min="0" max="23">:
    <input type="number" name="m" min="0" max="59">
    
  2. 优化PHP端的参数处理逻辑,补全格式适配SQL比对需求
    原有拼接代码:
    $o = strval($_GET['h']).":".strval($_GET['m']).":00";
    echo $o;
    
    修正后的逻辑(含空值兜底、两位格式补全):
    // 校验参数是否存在,不存在时默认取0,避免空值报错
    $hour = isset($_GET['h']) ? intval($_GET['h']) : 0;
    $minute = isset($_GET['m']) ? intval($_GET['m']) : 0;
    // 格式化为两位数字的标准时间串,完全匹配SQL TIME类型的存储格式
    $time_str = sprintf("%02d:%02d:00", $hour, $minute);
    echo $time_str;
    
效果验证

修正完成后提交表单,查看浏览器地址栏的URL,若能看到类似?h=14&m=45的参数,说明字段识别正常,PHP端最终会输出14:45:00格式的字符串,可直接用于和SQL TIME字段做值比对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 16:24:07