Так что мне нужно прочь в PHP, чтобы вернуться в / час в 24 часа. Мы используем Yahoo API для получения курсов валют, но они, похоже, дают его нам am / pm.
Я думал, что дата может работать, но когда я прочитал эту функцию, у нее не было бы возможности дозвониться до 24 часов.
5: 55pm
Это должно работать
date("H:i", strtotime("5:55 pm"));
и если вы хотите пойти другим путем,
date("g:ia", strtotime("17:55"));
Если Yahoo! API действительно не обеспечивает способ вернуть время в течение 24 часов, вы можете сделать так, как предложил sachleen, или использовать регулярное выражение.
(\d{1,2}): (\d{2})(am|pm)
Затем добавьте 12 часов, если это «pm».
проблема с использованием date
и strtotime
– вам, возможно, придется беспокоиться о часовом поясе … то, что вы получаете от yahoo, может не strtotime
вашего сервера … вот метод регулярных выражений:
$time = preg_replace_callback('~^([^:]+)(.*(a|p)m)$~',create_function('$m','return ($m[3]=="p")?(($m[1]+12).$m[2]):$m[0];'),$time);