php – сравнение двух дат

У меня есть следующий код. Я пытаюсь сравнить два get, чтобы войти в if, но я что-то не так с кодом.

следующий код должен работать, если время выше 23:29 и меньше, чем 08:10 …

$gettime="04:39"; // getting this from database $startdate = strtotime("23:29"); $startdate1 = date("H:i", $startdate); $enddate = strtotime("08:10"); $enddate1 = date("H:i", $enddate); //this condition i need to run if($gettime >= strtotime($startdate1) && $gettime <= strtotime($enddate1)) { echo"ok working"; } 

пожалуйста, помогите мне в этом

благодаря

Solutions Collecting From Web of "php – сравнение двух дат"

Удостоверьтесь, что вам нравятся правильные типы данных, отметки времени с отметками времени, а не w / строки и т. Д. …

 $gettime= strtotime("22:00"); // getting this from database $startdate = strtotime("21:00"); //$startdate1 = date("H:i", $startdate); $enddate = strtotime("23:00"); //$enddate1 = date("H:i", $enddate); //this condition i need to run if($gettime >= $startdate && $gettime <= $enddate) { echo"ok working"; } 

Вы сравниваете строку с датой. $ gettime – это строка, и вы сравниваете ее с объектом времени.

Вам нужно преобразовать $ gettime в объект времени, вызывая $ gettime = strtotime ($ gettime), а затем вы можете сравнить его с помощью> или <, как у вас выше.

Предполагая, что вы получаете время из БД в формате date (а не как string ):

изменение:

 if($gettime >= strtotime($startdate1) && $gettime <= strtotime($enddate1)) 

чтобы:

 if($gettime >= strtotime($startdate1) || $gettime <= strtotime($enddate1)) 

Для сравнения времени вы должны использовать предоставленные PHP-классы. DateTime :: diff вернет объект с информацией о разнице во времени: http://www.php.net/manual/en/datetime.diff.php

Вы можете обратиться к документации PHP о функции DateTime::diff на своем веб-сайте http://php.net/manual/en/datetime.diff.php

Вы также можете решить этот вопрос stackoverflow. Как рассчитать разницу между двумя датами с помощью PHP?