检查24小时时间戳是否在两个时间戳内

时间:2015-02-23 06:22:54

标签: php date

我正在尝试编写一个函数来检查某个时间(hh:mm)是否属于两个时间戳。除$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
    }

2 个答案:

答案 0 :(得分:1)

您还需要获取要检查的时间戳的日期。

以YYYY-MM-DD格式添加变量$checkDate,该变量是伴随$checkTime的日期。

然后更改您的代码:

$checkTime = strtotime($checkDate . ' ' . $checkTime . ':00');
if (($checkTime >= $startTime) && ($checkTime < $endTime)) {
    echo "In Range";
}
else {
    echo "Out of Range"; //gets printed
}

答案 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
}
?>