PHP превращает PM и AM в 24 часа

Так что мне нужно прочь в 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);