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

PHP中如何将时间格式化为带am/pm的12小时制?

解决方案

你需要使用ICU日期格式模式来定义目标输出样式,对应的模式字符串为:

'dd MMMM yyyy \a\t hh:mm a'

修改后的完整代码示例:

$dt = DateTime::createFromFormat('Y-m-d H:i:s', $last_ticket['created_on']);

$formatter = new IntlDateFormatter(
    Tickets::returnLocale(),
    IntlDateFormatter::NONE, // 禁用预定义日期样式
    IntlDateFormatter::NONE  // 禁用预定义时间样式
);
$formatter->setPattern('dd MMMM yyyy \a\t hh:mm a');
return $formatter->format($dt);

模式各部分说明:

  • dd:两位数格式的日期(示例中的10)
  • MMMM:完整的月份名称(示例中的August)
  • yyyy:四位数字的年份(示例中的2022)
  • \a\t:转义输出"at"字符串(避免a被识别为am/pm标记)
  • hh:12小时制的两位数小时(示例中的09)
  • mm:两位数格式的分钟(示例中的42)
  • a:小写的上午/下午标记(示例中的am)

如果需要大写的AM/PM,可以将模式中的a替换为aa即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:15:34