[英]How to calculate duration in Hour:Minute format from provided Start Hour-Minute to End Hours-Minute?
[英]How to format hour and minute in Chinese with PHP
我需要使用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:30 pm,例如: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小时格式2位数字表示”),而不是%H
(“24小时格式小时的2位数字表示”)连同%p/%P
(“ AM / PM”)。 还有%X
(“基于语言环境的首选时间表示形式,不带日期”)。
如果您确实不需要支持多种语言,那么编写自己的日期格式器将是一个明智的选择。
至于JavaScript,我总是在这里看到Moment.js的推荐,但是我没有使用过。
在中文时间支持方面,PHP的结果不一致。
对我有用的解决方案是输出时间ISO格式,并使用jQuery和moment.js来非常接近处理国际化时间的完美解决方案:
在php中,将您的时间输出到<span>
。
echo '<span date="'.date('c').'" moment-format="LT">'
.date('h:n').'</span>';
其中date('c')
返回ISO格式的日期, moment-format
定义了moment.js应该用来替换ISO时间的格式
在Javascript中,您只需替换所有时间格式:
moment.lang('zh-cn'); // or zh-tw
$('span[moment-format]').each(function(index, element) {
if($(this).attr('date'))
{
$(this).html(
moment().format($(this).attr('moment-format'))
);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.