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
相关产品推荐
相关产品推荐

