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

PHP DateTime格式化:如何将AM/PM改为带点的A.M/P.M格式

解决时间格式AM/PM转A.M./P.M.的问题

嘿,我来帮你搞定这个时间格式的需求!你现在用a格式符得到的是小写的am/pm,要改成带点的A.M./P.M.其实很简单——因为PHP的DateTime格式里没有直接对应这个格式的符号,我们可以用字符串替换的方式快速实现:

方法一:简洁的直接替换

你可以先按基础格式输出时间,再把am/pm替换成带点的版本:

$pm = str_replace(['am', 'pm'], ['A.M.', 'P.M.'], $format->format('d/m/Y H:i:s.00 a'));

这样输出的结果就会是你想要的d/m/Y H:i:s.00 A.M.或者d/m/Y H:i:s.00 P.M.格式啦。

方法二:逻辑更清晰的拆分拼接

如果想让代码可读性更强,也可以拆分时间部分和上午下午标识再拼接:

// 获取不带上午下午的基础时间字符串
$timePart = $format->format('d/m/Y H:i:s.00');
// 先转大写再替换成带点的格式
$ampmPart = str_replace(['AM', 'PM'], ['A.M.', 'P.M.'], strtoupper($format->format('a')));
// 拼接最终结果
$pm = $timePart . ' ' . $ampmPart;

两种方法都能达到你的需求,第一种更紧凑,第二种逻辑更直观,你可以根据自己的代码习惯选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:03:33