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

PHP如何将存储24小时制时间的变量转换为12小时制格式

24小时制时间转12小时制实现方案

你之前的代码存在语法错误、函数调用逻辑错误问题:

  • 不存在全局的format()函数,该方法仅属于DateTime实例对象
  • 函数括号未闭合,语法无法通过解析
  • strptime()返回的是结构化时间数组,无法直接传入格式化函数输出字符串

方案1:兼容性最高的date+strtotime实现(支持所有PHP版本)

直接将读取到的24小时制时间字符串转为时间戳,再按12小时制规则格式化即可:

$time = $row['pu_eta']; // 原始值为类似13:00的24小时制时间
$twelve_hour_time = date('h:i A', strtotime($time));
// 输出示例:01:00 PM

如果需要小写的上下午标识,把格式化串里的A替换为a即可,输出结果为01:00 pm。

方案2:DateTime类实现(PHP >= 5.3.0 可用)

直接按指定格式解析时间字符串,再格式化输出,不受服务器默认时间格式配置干扰:

$time = $row['pu_eta'];
$date_obj = DateTime::createFromFormat('H:i', $time);
$twelve_hour_time = $date_obj->format('h:i A');

格式化字符说明

  • h:12小时制小时数,带前导零,取值范围01-12
  • i:分钟数,带前导零,取值范围00-59
  • A:大写上下午标识,取值AM/PM
  • a:小写上下午标识,取值am/pm

注意:如果运行环境时区配置错误,输出结果可能出现偏差,可在代码开头加date_default_timezone_set('对应时区标识')修正,例如国内时区用PRC即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:48:33