javascript - 如何用PHP格式化中文的小时和分钟

标签 javascript php time localization

我需要用 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/

相关文章:

javascript - 修改尚未创建的元素的首选方式(事件除外)

php - Paypal 多币种问题付款状态未决

time - 在准确的时间调用函数

javascript 三元语句等价

javascript - 使用下划线 sortBy 对对象进行排序

javascript - JavaScript 弹出窗口中的动态高度

php - 我可以更改 ZipArchive 的压缩级别吗?

php - Laravel Collection 日期比较

python - 为什么回测时backtrader不显示时间?

Play Framework 的日期和时间?