@Caspergreen

Входит ли дата во временной интервал?

Имеется дата 2019-07-01 16:22:01

как проверить, входит ли эта дата между 17:40 и 23:59?
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MikUrrey
//по феншую
function checkDateIsBetween(string $data, string $timeFrom, string $timeTo): bool
{
    $dateObject = new DateTime($date);
    $day = $dataObject->format('Y-m-d');
    $from = (new DateTime($day . ' ' . $timeFrom))->getTimestamp();
    $to = (new DateTime($day . ' ' . $timeTo))->getTimestamp();
    $ts = $dateObject->getTimestamp();
    return ($ts < $to) && ($ts > $from);
}

//по быстроляну
function checkDateIsBetween2(string $date, string $timeFrom, string $timeTo): bool
{
    $ts = strtotime($date);
    list($day, $time) = explode($date);
    return ($ts > strtotime($day . ' ' . $timeFrom)) && ($ts < strtotime($day . ' ' . $timeTo));
}
$date = '2019-07-01 16:22:01';
$timeFrom = '17:40:00';
$timeTo = '23:59:00';
$dateIsBetween = checkDateIsBetween($date, $timeFrom, $timeTo);
$dateIsBetween2 = checkDateIsBetween2($date, $timeFrom, $timeTo);


Как можно заметить, идея состоит в том, чтобы ко времени начала и конца "пристроить" день заданной даты, а затем получить и сравнить временные метки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы