2015-10-16 40 views
0

不知道爲什麼,但如果這條語句不起作用。我在這裏做錯了什麼?檢查Timetstamp是否超過1小時不能使用?

$timestamp = $order->datetime; 
if ($timestamp >= strtotime("-1 hour")) { 
    echo "PULL FROM DB!"; 
} else { 
    echo "PULL FROM API"; 
} 

感謝

+0

什麼是你所得到的錯誤? –

+0

即使時間戳較晚或更早,它只是說「從API中拉出」 – Elevant

+2

「$ timestamp」的值是否與您期望的一樣?也許這可能有助於解決正在發生的事情。 – Henders

回答

1

您正試圖日期字符串比較時間戳。你在if語句中實際比較的內容如下:

if("2015-10-16 08:21:11" >= 1444987642){ 
echo "PULL FROM DB!"; 
} else { 
echo "PULL FROM API"; 
} 

這不是你想要的。在比較之前,您需要將日期字符串轉換爲時間戳。試試這個:

$dateString = $order->datetime; 
$timestamp = strtotime($dateString); 

if ($timestamp >= strtotime("-1 hour")) { 
    echo "PULL FROM DB!"; 
} else { 
    echo "PULL FROM API"; 
} 

的關鍵部分是,你的日期字符串轉換爲時間戳:

$timestamp = strtotime($dateString);

+0

我會檢查 – Elevant

0

我試圖

$timestamp = strtotime("now"); 
if ($timestamp >= strtotime("-1 hour")) { 
    echo "PULL FROM DB!"; 
} else { 
    echo "PULL FROM API"; 
} 

結果:拉離DB! 和

$timestamp = strtotime("now"); 
if ($timestamp >= strtotime("1 hour")) { 
    echo "PULL FROM DB!"; 
} else { 
    echo "PULL FROM API"; 
} 

結果:拉離API

請檢查您傳遞的值

$timestamp = $order->datetime; 
+0

所以你的工作? – Elevant

+0

@Elevant - 就像Sumit說的那樣,你需要檢查$ timestamp的值,因爲它可能不是你想象的那樣。 嘗試:'echo $ timestamp;'並查看出來的內容。 – Henders

+0

echo顯示2015-10-16 08:21:11這是表中的內容嗎?也許我的IF有什麼問題? – Elevant