Php 检查星期几和时间

Php 检查星期几和时间,php,time,Php,Time,我一直在试图找出如何在一周中的某一天和某一时间之间切换……我发现了以下代码片段: function isBetween($from, $till, $input) { $f = DateTime::createFromFormat('!H:i', $from); $t = DateTime::createFromFormat('!H:i', $till); $i = DateTime::createFromFormat('!H:i', $input); if ($f > $t) $

我一直在试图找出如何在一周中的某一天和某一时间之间切换……我发现了以下代码片段:

function isBetween($from, $till, $input) {
 $f = DateTime::createFromFormat('!H:i', $from);
 $t = DateTime::createFromFormat('!H:i', $till);
 $i = DateTime::createFromFormat('!H:i', $input);
 if ($f > $t) $t->modify('+1 day');
 return ($f <= $i && $i <= $t) || ($f <= $i->modify('+1 day') && $i <= $t);
};
但是我试着这么做

if (isBetween('22:30','02:00',date('H:i')){
但这只是破坏了网站,我缺乏处理时间的经验,我基本上希望在周一晚上11点到周二下午2点或周一晚上11点到周六下午5点之间进行检查,无论一年/月的哪一天,它都必须进行检查,这意味着我希望它是动态的,而不是静态的

我也试过:

if (date('H') < 14)
if(日期('H')<14)

但这是非常简单的,我不知道如何得到像日期和小时+秒这样复杂的东西

你可以这样做:

function isBetween($from, $till, $input) {
 $f = date('H:i', strtotime($from));
 $fd= date('l', strtotime($from));
 $t = date('H:i', strtotime($till));
 $td= date('l', strtotime($till));
 $i = date('H:i', strtotime($input,'+8 hours'));
 $id= date('l', strtotime($input));
 $days = array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'); 
 if(array_search($fd,$days)<array_search($id,$days) && array_search($td,$days)>array_search($id,$days)){
    return true;
 }elseif(array_search($fd,$days)==array_search($id,$days) && $f<$i){
    return true;
 }elseif(array_search($td,$days)==array_search($id,$days) && $t<$i){
    return true;
 }
 return false;
};

$from = 'Wednesday 12:00';
$till = 'Saturday 23:00';
$input = 'Friday 12:23';

if(isBetween($from,$till,$input)){
    echo "True";
}else{
    echo "not";
}
函数介于($from,$till,$input)之间{
$f=日期('H:i',标准时间($from));
$fd=日期('l',标准时间($from));
$t=日期('H:i',标准时间($till));
$td=日期('l',标准时间($till));
$i=日期('H:i',strottime('input',+8小时');
$id=日期('l',标准时间($input));
$days=array('星期一'、'星期二'、'星期三'、'星期四'、'星期五'、'星期六'、'星期日');
if(数组搜索($fd,$days)数组搜索($id,$days)){
返回true;

}elseif(数组搜索($fd,$days)=数组搜索($id,$days)&&fHow-x)这解决了我的一个问题,只需要找出如何在两个日期之间切换,而不是只检查两个年份之间的时间点?因此,对于白天的时间点,我会使用'dh:I'而不是'Y-m-dh:I'?对不起,我不太明白这个问题。例如。
周一12:00
周日13:00
然后检查是否
周三5:00
?例如是的如果星期一12:00星期日13:00星期三下午5:00介于两者之间=真。在这种情况下,年和月不重要,不是这样吗?$i=date('H:i',strotime('input.+8 hours');冒号而不是逗号。这是一个串联,不是吗?
if (isBetween('22:30','02:00',date('H:i'))){
function isBetween($from, $till, $input) {
 $f = date('H:i', strtotime($from));
 $fd= date('l', strtotime($from));
 $t = date('H:i', strtotime($till));
 $td= date('l', strtotime($till));
 $i = date('H:i', strtotime($input,'+8 hours'));
 $id= date('l', strtotime($input));
 $days = array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'); 
 if(array_search($fd,$days)<array_search($id,$days) && array_search($td,$days)>array_search($id,$days)){
    return true;
 }elseif(array_search($fd,$days)==array_search($id,$days) && $f<$i){
    return true;
 }elseif(array_search($td,$days)==array_search($id,$days) && $t<$i){
    return true;
 }
 return false;
};

$from = 'Wednesday 12:00';
$till = 'Saturday 23:00';
$input = 'Friday 12:23';

if(isBetween($from,$till,$input)){
    echo "True";
}else{
    echo "not";
}