Как проверить, есть ли время между двумя раз в PHP
У меня есть следующие три строки (текущее время, закат и восход), как я могу узнать, находится ли текущее время между восходом и заходом солнца?
$current_time = "10:59 pm";
$sunrise = "5:42 am";
$sunset = "6:26 pm";
Ответы
Ответ 1
$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';
}
Посмотрите в действии
Ссылка
Ответ 2
я бы рекомендовал вам сначала "преобразовать" строки в целые числа, используя функцию substr и intval.
На этом шаге вы сможете просто сравнить время.
(обратите внимание, что вы должны использовать 18:00 вместо 6:00 PM, это было бы легче сменить, поэтому вы могли бы "обнаружить" с помощью substr, если время AM или PM, и просто добавьте "12" к номер)
Я довольно уверен, что есть более элегантные способы сделать это, но это должно просто дать вам ОСНОВНУЮ идею для ПРОСТОГО способа для непередовых разработчиков php.
надеюсь, что это поможет