Как я могу конвертировать такие времена, как 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
Больше информации:
Обновить:
Чтобы преобразовать его обратно:
$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
, эти времена всегда относятся к текущему дню в часовом поясе сервера .