所以我需要在 PHP 中将 pm/am 转换为 24 小时制,我们使用 Yahoo API 来获取货币汇率,但他们似乎是通过 am/pm 给我们的。
我认为 date 可能会起作用,但是当我读入该函数时,它无法将 pm 变成 24 小时。
5: 55pm
这应该工作
date("H:i", strtotime("5:55 pm"));
如果你想走另一条路,
date("g:i a", strtotime("17:55"));
如果雅虎!API 确实没有提供在 24 小时内返回时间的方法,您可以按照 sachleen 的建议进行操作,或者使用正则表达式。
(\d{1,2}): (\d{2})(am|pm)
如果是“下午”,则只需将小时数加 12。
使用问题,date
您strtotime
可能需要担心时区...您从雅虎获得的内容可能与您服务器的时区不符...这是一个正则表达式方法:
$time = preg_replace_callback('~^([^:]+)(.*(a|p)m)$~',create_function('$m','return ($m[3]=="p")?(($m[1]+12).$m[2]):$m[0];'),$time);