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

为什么strtotime转换12小时制时间为24小时制时结果不符合预期?

strtotime转换12小时制时间结果不符的原因

你得到的0:40:22是strtotime按标准规则转换的正常输出,核心原因是12小时制的AM/PM对应规则容易产生误解:

  • 12小时制规范中,午夜12点到凌晨1点前的时段标注为12:XX AM,对应24小时制的0:00:00 ~ 0:59:59
  • 中午12点到下午1点前的时段标注为12:XX PM,对应24小时制的12:00:00 ~ 12:59:59

你的输入字符串"12:40:22AM"会被strtotime解析为当天凌晨0点40分22秒,配合date("G:i:s")中G的格式定义(24小时制不带前导零的小时值),最终输出0:40:22,转换逻辑本身没有问题。

如果你的实际需求是表示中午12点40分22秒,将输入字符串中的AM修改为PM即可得到输出12:40:22;如果需要小时值带前导零,将格式字符G替换为H即可输出00:40:22。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:48:02