2

所以我需要在 PHP 中将 pm/am 转换为 24 小时制,我们使用 Yahoo API 来获取货币汇率,但他们似乎是通过 am/pm 给我们的。

我认为 date 可能会起作用,但是当我读入该函数时,它无法将 pm 变成 24 小时。

5: 55pm
4

3 回答 3

8

这应该工作

date("H:i", strtotime("5:55 pm"));

如果你想走另一条路,

date("g:i a", strtotime("17:55"));
于 2012-06-05T22:36:42.817 回答
0

如果雅虎!API 确实没有提供在 24 小时内返回时间的方法,您可以按照 sachleen 的建议进行操作,或者使用正则表达式。

(\d{1,2}): (\d{2})(am|pm)

如果是“下午”,则只需将小时数加 12。

于 2012-06-05T22:40:36.120 回答
0

使用问题,datestrtotime可能需要担心时区...您从雅虎获得的内容可能与您服务器的时区不符...这是一个正则表达式方法:

$time = preg_replace_callback('~^([^:]+)(.*(a|p)m)$~',create_function('$m','return ($m[3]=="p")?(($m[1]+12).$m[2]):$m[0];'),$time);
于 2012-06-05T22:47:20.943 回答