Подтвердить что ты не робот

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

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

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

Ответ 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.

надеюсь, что это поможет