检查星期几和时间
Check day of week and 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) $t->modify('+1 day');
return ($f <= $i && $i <= $t) || ($f <= $i->modify('+1 day') && $i <= $t);
};
我已经设法让它在两次之间进行检查,看看当前是否匹配使用:
if (isBetween('22:30','02:00','23:00')){
echo "true";
}
但是我尝试这样做
if (isBetween('22:30','02:00',date('H:i')){
但这刚刚破坏了网站,我缺乏处理时间的经验,我基本上想在周一晚上 11 点到周二下午 2 点或周一晚上 11 点到周六下午 5 点之间检查,无论 year/month 意思是我希望它是动态的而不是静态的..
我也试过:
if (date('H') < 14)
但它非常简单,我不知道如何获得像日期和小时+秒这样复杂的东西
你还缺 1 个收盘)
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";
}
输出=true
;
我一直在试图弄清楚如何在星期几和时间之间找到...我找到了这段代码:
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','23:00')){
echo "true";
}
但是我尝试这样做
if (isBetween('22:30','02:00',date('H:i')){
但这刚刚破坏了网站,我缺乏处理时间的经验,我基本上想在周一晚上 11 点到周二下午 2 点或周一晚上 11 点到周六下午 5 点之间检查,无论 year/month 意思是我希望它是动态的而不是静态的..
我也试过:
if (date('H') < 14)
但它非常简单,我不知道如何获得像日期和小时+秒这样复杂的东西
你还缺 1 个收盘)
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";
}
输出=true
;