你好你能帮我解决我的问题吗?
检查时间范围是否包含另一个时间范围,例如我有2个时间范围:
$nightShiftStart = strtotime("22:00:00 today");
$nightShiftEnd = strtotime("06:00:00 tomorrow");
$overTimeStart = strtotime("21:00:00 today");
$overTimeEnd = strtotime("07:00:00 tomorrow");
如果我检查加班开始和结束是否包含夜班计划,它应该返回true。2我有一个代码。
if ($overTimeStart >= $nightShiftStart && $overTimeEnd <= $nightShiftEnd ) {
return true;
} else {
return false;
}
上面的代码将返回true。但是如果我将加班范围更改为:
$nightShiftStart = strtotime("22:00:00 today");
$nightShiftEnd = strtotime("06:00:00 tomorrow");
$overTimeStart = strtotime("17:00:00 today");
$overTimeEnd = strtotime("20:00:00 today");
它也返回真,它应该返回假,因为加班时间只有下午5点到8点,时间不符合夜班。你能帮我这个忙吗?我已经被困了20天了。
1条答案
按热度按时间xtupzzrd1#
看看这份文件:https://www.php.net/manual/en/datetime.formats.relative.php
此规则的例外情况包括:"昨天"、"午夜"、"今天"、"中午"和"明天"。注意,"明天11:00"和"明天11:00"是不同的。考虑到今天的日期"2008年7月23日",第一个产生"2008 - 07 - 2411:00",而第二个产生"2008 - 07 - 2400:00"。其原因是这五个语句直接影响当前时间。
所以正确的字符串应该是: