ВОПРОС

Ю

PHP Как проверить входит ли дата (время) в диапазон?

Ответов: 1

Просмотров: 7

ОТВЕТЫ (1)

С
Просветленный (5115)
Модератор проекта «Ноль вопросов!», также увлекаюсь программированием
Для того, чтобы определить, входит ли дата в заданный диапазон, существует два способа: процедурный и объектный, первый выполняется следующим образом:
<?php

// Даты диапазона (можно указывать со временем)
$start_date = strtotime('2015-01-01'); // начальная дата 
$end_date = strtotime('2016-10-01'); // конечная дата

$date = strtotime('2015-06-01'); // проверяемая дата

// Выполняем проверку
$inRange = ($date >= $start_date && $date <= $end_date)? true : false; // флаг, если дата входит, то равен true, если нет, то false

echo($inRange); // 1

?>
Теперь выполним то же самое объектным способом:
<?php

// Даты диапазона
$start_date = new DateTime('2015-01-01'); // начальная дата 
$end_date = new DateTime('2016-10-01'); // конечная дата

$date = new DateTime('2015-06-01'); // проверяемая дата

// Выполняем проверку
$inRange = ($date >= $start_date && $date <= $end_date)? true : false; // флаг, если дата входит, то равен true, если нет, то false

echo($inRange); // 1

?>
Процедурный способ (первый) гораздо быстрее и расходует меньше системных ресурсов, но объектный рекомендуется в тех случаях, когда с указанными датами необходимо выполнять еще и другие операции, помимо проверки вхождения в диапазон.

Теперь разберем случай, когда необходимо проверить время на вхождение в диапазон, будет срабатывать каждые сутки, выполняется это абсолютно также, только вместо даты указывается время:
<?php

// Время интервала
$start_time = strtotime('17:00'); // начальное время 
$end_time = strtotime('19:00'); // конечное время

$time = strtotime('18:00'); // проверяемое время

// Выполняем проверку
$inRange = ($time >= $start_time && $time <= $end_time)? true : false; // флаг, если время входит в указанный интервал, то равен true, если нет, то false

echo($inRange); // 1

?>

ОТВЕТИТЬ

ПОХОЖИЕ ВОПРОСЫ