Как конвертировать время, как 2 часа или 3 часа ночи в HH: MM: формат SS в php?

Как я могу конвертировать такие времена, как 2 часа или 3 часа ночи в формате HH: MM: SS в php?

Как это:

$date = '2pm'; echo date('H:i:s', strtotime($date)); 

Результат:

 14:00:00 

А также:

 $date = '2am'; echo date('H:i:s', strtotime($date)); 

Результат:

 02:00:00 

Больше информации:

  • Дата
  • StrToTime

Обновить:

Чтобы преобразовать его обратно:

 $date = '14:00:00'; echo date('HA', strtotime($date)); 

Результат:

 14PM 

(это должен быть комментарий, но он слишком длинный)

Причина, по которой решение Сарфраза является неполным, заключается в том, что он не учитывает переходы DST. Во время перехода на летнее время некоторые часы могут не существовать.

Рассмотрим часовой пояс – это Европа / Лиссабон, и мы находимся в 28 марта 2010 года, когда ДСТ запустил.

Когда мы нажмем 1 утра, мы перейдем от UTC + 0 к UTC + 1, т. Е. Пропустим 1 час. Пример:

 date_default_timezone_set("Europe/Lisbon"); $date = '2010-03-28 1am'; $date2 = '2010-03-28 1:30am'; echo date('H:i:s', strtotime($date)),"\n"; echo date('H:i:s', strtotime($date2)),"\n"; 

дает

 2:00:00
 2:30:00

Таким образом, решение Sarfraz потерпит неудачу, если вы не скажете, что хотите конвертировать 1am в 01:00 , эти времена всегда относятся к текущему дню в часовом поясе сервера .