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

PHP strtotime空值返回当前时间 如何让空表单时间返回空值

PHP表单空时间转换返回当前时间问题修复

问题根因

出现空值时返回当前时间的原因有两点:

  • 表单未选择时间时传递的参数不一定是纯空字符串,可能是带前后空格的空白串、null、时间输入框默认空占位值,原有松散判断$da1 == ""无法覆盖所有空场景
  • strtotime()接收到无法解析的参数时会返回false,date()接收到false作为时间戳参数时,会默认读取当前系统时间生成格式化字符串,直接导致空值场景输出当前时间

修复方案

先对传入值做去空白处理,通过严格比较判断空值,同时增加strtotime()解析结果校验,只有解析成功时才做12小时制格式转换,所有空值、解析失败场景统一返回空字符串。
完整可直接替换的代码:

// 去除值前后的空白字符,避免空格类空值漏判
$da1 = trim($da1);
if ($da1 === '') {
    $da1 = '';
} else {
    $parsedTime = strtotime($da1);
    // 仅当时间解析成功时执行格式转换,解析失败直接置空
    $da1 = $parsedTime ? date('h:i a ', $parsedTime) : '';
}

如果需要精简写法,也可以用三元表达式实现相同逻辑:

$da1 = trim($da1);
$da1 = $da1 === '' ? '' : ($parsedTime = strtotime($da1)) ? date('h:i a ', $parsedTime) : '';

优化说明

  • 使用===严格相等判断空值,避免松散比较下数字0、字符串"0"这类合法值被误判为空
  • 强制校验strtotime()返回结果,从根源避免解析失败时date()自动取当前时间的问题
  • 前置trim()处理,覆盖表单传值带前后不可见空白字符的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:36:20