2014-10-20 67 views
1

我試圖根據記錄在我的數據庫中的時間顯示不同的內容。PHP函數現在比較數據庫中的時間

從1800點到0800點顯示內容B. 剩餘時間顯示內容A.其餘

我的數據庫字段存儲時間字段,以便在數據庫1800點被存儲爲18:00:00相同到上午8點,它被存儲爲08:00:00。

下面是我的邏輯來獲取內容B時的時間是18:00:00 08:00:00之間:

$now = strtotime(date('H:i:s')); 
$time_from = strtotime($data['date_from']); //18:00:00 
$time_to = strtotime($data['date_to']); // 08:00:00 
if($now >= $time_from && $now <= $time_to){ 
    echo 'content A'; 
} 

如果我 $time_to是內23:59上面的代碼將只工作: 59 as $now將始終大於 08:00:00。假設現在的時間是 23:30:00,我的代碼永遠不會回顯「內容A」,因爲 23:30:00大於 08:00:00

如何讓邏輯工作按時間檢查才能顯示內容?

@All,即時編輯代碼再次。是。我確實把$ now = strtotime(date('H:i:s'));.但它並沒有起作用。首先,當前的unix時間戳將始終大於08:00:00的unix時間戳。假設現在的時間是23:30:00。 unix時間戳將始終大於08:00:00。

+0

爲什麼你不使用碳庫處理日期是很容易的https:// github上.com/briannesbitt/Carbon – Fabrizio 2014-10-20 16:55:06

回答

1
if (date("H:i") >= '08:00' && date("H:i") <= '18:00') { 
    // Retrieve content 'A' 
} else { 
    // Retrieve content 'B' 
} 
+0

08:00:00應該<=因爲我期待在18:00:00至08:00:00之間顯示內容。邏輯應該倒退。它應該是從18:00:00到08:00:00 – 2014-10-20 17:50:22

+0

這種方式將工作@Kimberlee - 這是你如何嘗試它的不同邏輯。計劃何時顯示內容A,並在其他時間顯示內容B. – danmullen 2014-10-20 19:52:52

+0

是的。有用。我不認爲這種反向邏輯對我來說是行得通的。我修改了我的代碼和邏輯。謝謝Danmullen! – 2014-10-21 03:43:17

1

作出對比之前,你需要strtotime()$now變量以及嘗試:

$now = date('H:i:s'); 
$time_from = strtotime($data['date_from']); //18:00:00 
$time_to = strtotime($data['date_to']); // 08:00:00 
$now_str = strtotime($now); 
if($now_str >= $time_from && $now_str <= $time_to){ 
    echo 'content A'; 
} 
+0

我確實在我的$現在添加了strtotime。我錯過了我的問題中的那一部分。因此我編輯了它。即使採用時間,也無助於解決問題。假設現在的時間是23:30:00。 unix時間戳將始終大於08:00:00。 – 2014-10-20 17:48:14