我正在尝试编写一个函数来检查某个时间(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
}
答案 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
}
?>