簡體   English   中英

檢查星期幾和時間

[英]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點之間進行檢查,無論是一年中的哪個月/月,都必須進行檢查。要動態而不是靜態

我也嘗試過:

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 ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM