Как проверить, существует ли время между двумя раз в PHP

У меня есть три строки (текущее время, закат и восход солнца), как я могу узнать, находится ли текущее время между восходом и закатом?

$current_time = "10:59 pm"; $sunrise = "5:42 am"; $sunset = "6:26 pm"; 

Редактировать: Я не понимаю, почему у меня так много голосов. Я предполагаю, что этот сайт должен задать вопрос, если вы не можете что-то сделать самостоятельно.

Я не мог понять, как преобразовать время в номера из-за am / pm, поэтому я задал вопрос. Я не видел подобного вопроса, поэтому я спросил.

Related of "Как проверить, существует ли время между двумя раз в PHP"

 $current_time = "4:59 pm"; $sunrise = "5:42 am"; $sunset = "6:26 pm"; $date1 = DateTime::createFromFormat('H:i a', $current_time); $date2 = DateTime::createFromFormat('H:i a', $sunrise); $date3 = DateTime::createFromFormat('H:i a', $sunset); if ($date1 > $date2 && $date1 < $date3) { echo 'here'; } 

Смотрите это в действии

Справка

  • DateTime

я бы рекомендовал вам сначала «преобразовать» строки в целые числа, используя функцию substr и intval.

Пройдите этот шаг, чтобы вы могли просто сравнить время.

(обратите внимание, что вы должны использовать 18:00 вместо 6:00 PM, это было бы легче сменить, поэтому вы могли бы «обнаружить» с помощью substr, если время AM или PM, и просто добавить «12» к числу)

я довольно уверен, что есть более элегантные способы сделать это, но это должно просто дать вам ОСНОВНУЮ идею для ПРОСТОГО способа для непередовых разработчиков php.

Надеюсь, поможет