Преобразование армейского времени в основное время AM PM в PHP

Я ищу способ конвертировать время армии (например, 23:00) в основное время с выражением AM / PM.

Просто передайте свое время в функции strtotime следующим образом:

 $time_in_12_hour_format = date("g:ia", strtotime("23:00")); echo $time_in_12_hour_format; 

http://www.php.net/manual/en/function.date.php

 $army_time_str = "23:00"; $regular_time_str = date( 'g:i A', strtotime( $army_time_str ) ); echo $regular_time_str; 

input $ time имеет форму 'XXXX' (например, '0000', '0001', …, '2300'). я не мог найти функцию для этого, поэтому написал следующее. хотел опубликовать здесь, если кто-то ищет то же самое.

 function convert_army_to_regular($time) { $hours = substr($time, 0, 2); $minutes = substr($time, 2, 2); if ($hours > 12) { $hours = $hours - 12; $ampm = 'PM'; } else { if ($hours != 11) { $hours = substr($hours, 1, 1); } $ampm = 'AM'; } return $hours . ':' . $minutes . $ampm; }