2016-03-08 45 views
0

我發現許多輸出bool的解決方案,如果某天是特定日期之前或之後,但我似乎無法找到特定時間在PHP中。檢查一天中的當前時間是否在特定時間之前或之後

我有一個腳本,我希望可以在7:45 AM和3:45 PM之間使用,並且只能在星期一到星期五之間使用 - 但不會在這些時間之前或之後或週末使用。

我一直在討論如何做到這一點,我在這裏張貼,因爲我確信有一個非常簡單的方法來做到這一點,我忽略了。

這是我到目前爲止有:

$timeOfDay = date("h:iA"); 
$dayOfDay = date("D"); 

if(strcmp($dayOfDay,'Mon') != 0 
||strcmp($dayOfDay,'Tue') != 0 
||strcmp($dayOfDay,'Wed') != 0 
||strcmp($dayOfDay,'Thu') != 0 
||strcmp($dayOfDay,'Fri') != 0) { 
    //disable site 
} else { 
    //if $timeOfDay is before 7:30AM or after 3:45PM, disable site ELSE enable site 
} 

需要明確的是,該腳本應該只是在線週一至週五上午7:45和下午3:45之間。

編輯: 另外要注意的 - 我只是尋求PHP邏輯,我可以得到一個真或假,我可以處理的代碼的其餘部分禁用腳本等

+1

獲取和比較時間戳 –

+0

@u_mulder什麼時間戳?沒有要比較的記錄。這就是我想要弄明白的,我可以比較兩個變量的時間,並根據我的需求創建一個真實或錯誤的時間。 – GrumpyCrouton

回答

1
$now = strtotime("now"); // here come current timestamp 
$dt_start = strtotime(date("d.m.Y 07:45")); // timestamp of today 07:45 
$dt_end = strtotime(date("d.m.Y 15:45")); // timestamp of today 15:45 
$cur_day = date("w", $now); // number of cur day 0 to 6 

if ((0 < $cur_day && $cur_day < 6)    // check what day is it 
    && ($dt_start < $now && $now < $dt_end)) { // check time interval 
    // do stuff 
} 
+0

因此,如果陳述是「做東西」,如果時間在這兩次之間?或者相反? – GrumpyCrouton

+0

兩次之間。 –

相關問題