2014-10-08 45 views
-1

我必須將時間與存儲在變量中的時間值進行比較。我設計了邏輯,但它在時間上失敗了。如何使用php比較兩次

以下是邏輯:

$diff = "22:32:53"; 

if ($diff > strtotime("072:00:00")) 
{ 
    echo "DO A"; 
} 
else if ($diff < strtotime("08:00:00")) 
{ 
    echo "DO B"; 
} 
else if($diff > strtotime("08:00:00") && $diff < strtotime("072:00:00")) 
{ 
    echo "DO C"; 
} 

但它呼應 「DO A」 而它應該顯示 「DO C」。無法弄清楚我在哪裏丟失的邏輯提前

感謝。

+2

strtotime將有效的日期字符串轉換爲時間戳。 strtotime(「072:00:00」)返回false。 – cjs1978 2014-10-08 12:54:00

回答

0

如果要比較的時間(無日期),最好的辦法是手動將其轉換成秒,並比較秒。 strtotime可能有效,但在比較之前,您還需要在$diff上運行它。

+0

不,它沒有工作 – user3305327 2014-10-08 12:56:27

+0

什麼沒有?將數字轉換爲秒並在之後進行比較?我對此表示懷疑。 – blue112 2014-10-08 12:57:02

+0

如果(的strtotime($ DIFF)>的strtotime( 「072:00:00」)) { 回波$ B。 「現有劇本」; } else if(strtotime($ diff) strtotime(「08:00:00」)&& strtotime($ diff) user3305327 2014-10-08 12:57:46

0

第一件事,$ DIFF是一個字符串不是一個int,它應該是:

$diff = strtotime("22:32:53"); 

比較通常使用DateTime::diff

做的比較無論如何都不會工作,因爲如果你檢查

var_dump(strtotime("072:00:00")); 

將返回:

false 

的strtotime嘗試匹配與已知的時間格式的格式,72是不是有效的小時。