根据语言环境在php中显示时间(小时:分钟(上午/下午))

时间:2014-03-07 14:04:59

标签: php datetime

我希望根据用户的语言环境显示时间而不显示秒数,如果是非24小时格式,则显示pm或am。我使用PHP中的setlocale()函数设置语言环境。

所以我想实现这个目标:

03:59 PM或15:59

我能找到的最接近的解决方案是:

strftime('%X', time());

将显示

03:59:16或15:59:16

当然我可以从该结果中删除秒数,但之后我仍然遇到根据用户的语言环境没有AM / PM的问题。

关于如何以一种很好的方式实现这一目标的任何建议?

3 个答案:

答案 0 :(得分:1)

请参阅此处的格式表http://php.net/strftime

strftime('%I:%M %p');

Demo

答案 1 :(得分:0)

试试这个

strftime('%I:%M %p');

有关详细信息,请查看documentation

答案 2 :(得分:0)

尝试使用explode和ltrim:

$time = strftime('%X',time());
$parts = explode(':',$time);
$parts[2] = ltrim($parts[2],'0');
$formatted = ltrim($parts[0].':'.$parts[1].' '.$parts[2],'0');

strftime('%X',time())将包含AM或PM(如果语言环境指示它。)