2010-11-16 89 views
1

我在我的項目中使用PHP的日期函數,並且想要檢查天氣給定的日期時間位於date-time.ie的給定範圍之間,例如如果當前日期時間是2010-11-16 12:25: 00 PM,並且要檢查時間是在2010-11-16 09:00:00 AM到06:00:00 PM之間。在上述情況下它是真實的,如果時間不在該範圍之間,它應該返回錯誤。 是否有任何inbuild PHP函數來檢查這個或我們將不得不寫一個新的函數?PHP函數檢查給定範圍之間的時間?

回答

7

只需使用strtotime到兩次轉換成UNIX時間戳:

樣本函數可能看起來像:

function dateIsBetween($from, $to, $date = 'now') { 
    $date = is_int($date) ? $date : strtotime($date); // convert non timestamps 
    $from = is_int($from) ? $from : strtotime($from); // .. 
    $to = is_int($to) ? $to : strtotime($to);   // .. 
    return ($date > $from) && ($date < $to); // extra parens for clarity 
} 
+1

1但我希望邏輯使用> =和<=,使得範圍是包括性的 – 2010-11-16 07:53:59

+0

嘿感謝@Hamish!它工作得很好... – 2010-11-16 08:23:40

6

功能檢查日期/時間的範圍內:

function check_date_is_within_range($start_date, $end_date, $todays_date) 
{ 

    $start_timestamp = strtotime($start_date); 
    $end_timestamp = strtotime($end_date); 
    $today_timestamp = strtotime($todays_date); 

    return (($today_timestamp >= $start_timestamp) && ($today_timestamp <= $end_timestamp)); 

} 

與參數調用函數開始日期/時間,結束日期/時間,今天的日期/時間。以下參數可以查看當前日期/時間是在2012年6月26日上午10點到當天中午之間的功能。

if(check_date_is_within_range('2012-06-26 10:00:00', '2012-06-26 12:00:00', date("Y-m-d G:i:s"))){ 
    echo 'In range'; 
} else { 
    echo 'Not in range'; 
} 
+0

謝謝@Kenneth,我會試試這個,讓你知道.. – 2012-06-23 06:53:54