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

