Задать вопрос
@Caspergreen

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

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

как проверить, входит ли эта дата между 17:40 и 23:59?
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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);


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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽