我需要用 PHP 显示中文格式的时间。
我已经尝试使用 strftime 了:
setlocale(LC_TIME, "zh_CN");
echo strftime("%a, %Y %B %d");
日期和显示工作:二,2013年十一月05日
但是为了时间:
setlocale(LC_TIME, "zh_CN");
echo strftime("%H %M");
显示:14 30
但是 2:30pm 必须显示为:zh_CN 为下午 2 点 30 分,zh_HK 为下午 2 点
您是否知道解决方案或 php 库来做到这一点?
谢谢
PS:客户端的 javascript 解决方案也不错;)
最佳答案
我没有得到你想要的确切输出,但这通常是 intl 的好工作扩展名:
<?php
$locales = array(
'en_US',
'en_GB',
'zh_CN',
'zh_HK',
);
$date = new DateTime('14:30');
foreach($locales as $locale){
$fmt = new IntlDateFormatter($locale, IntlDateFormatter::NONE, IntlDateFormatter::SHORT);
echo $fmt->format($date) . PHP_EOL;
}
...打印:
2:30 PM
14:30
下午2:30
下午2:30
如果你坚持strftime您必须使用 %I
(“以 12 小时格式表示小时的两位数”)而不是 %H
(“以两位数表示小时的格式”) 24 小时格式”)和 %p/%P
(“AM/PM”)。还有 %X
(“基于语言环境的首选时间表示,没有日期”)。
如果您真的不需要支持多种语言,编写自己的日期格式化程序将是一个明智的选择。
至于 JavaScript,我总是看到 Moment.js这里推荐,但我没用过。
关于javascript - 如何用PHP格式化中文的小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799169/