Проверьте, попадает ли 24-часовая отметка времени в две отметки времени

0

Я пытаюсь написать функцию, чтобы проверить, попадает ли какое-то время (чч: мм) в течение двух временных штампов. Следующий метод работает отлично, за исключением случаев, когда $checktime находится после 23:00. Окно начала и окончания всегда находится примерно на расстоянии 30 минут (не охватывает несколько дней). Как я могу решить эту проблему?

<?php

    $startWindow = '2015-02-21 23:30:08';
    $endWindow = '2015-02-22 00:01:26';
    $checkTime = '23:44';
    $startTime = strtotime($startWindow);
    $endTime = strtotime($endWindow);

    $checkTime = strtotime($checkTime);
    if (($checkTime >= $startTime) && ($checkTime < $endTime)) {
        echo "In Range";
    }
    else {
        echo "Out of Range"; //gets printed
    }
  • 0
    военное время ? аналогичный вопрос был задан 10 минут назад и был отмечен как дубликат.
Теги:
date

2 ответа

1

Вам также нужно будет указать дату отметки времени, которую вы хотите проверить.

Добавьте переменную $checkDate которая является датой сопровождающего $checkTime в формате YYYY-MM-DD.

Затем измените свой код:

$checkTime = strtotime($checkDate . ' ' . $checkTime . ':00');
if (($checkTime >= $startTime) && ($checkTime < $endTime)) {
    echo "In Range";
}
else {
    echo "Out of Range"; //gets printed
}
  • 0
    Да, собирался сказать то же самое.
  • 0
    Если у меня есть $startWindow = '2015-02-21 23:30:08' и $endWindow = '2015-02-22 00:05:26'; Оба $checkTime = '23:44'; и $checkTime = '00:02' должны попадать в диапазон. Как я могу передать одну $ startDate и достичь этого?
Показать ещё 1 комментарий
0

Вы должны установить дату

<?php

$startWindow = '2015-02-21 23:30:08';
$endWindow = '2015-02-22 00:01:26';
$checkTime = '2015-02-21 23:44'; // or $checkTime = date('Y-m-d') . ' 23:44';
$startTime = strtotime($startWindow);
$endTime = strtotime($endWindow);

$checkTime = strtotime($checkTime);
if (($checkTime >= $startTime) && ($checkTime < $endTime)) {
    echo "In Range";
}
else {
    echo "Out of Range"; //gets printed
}
?>
  • 0
    @ Немо у тебя есть аванс?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню