2015-01-09 26 views
1

我有以下的會話值在PHP比較日期時間不工作

$_SESSION["time"] = 2015-01-09 23:57:38 (example value) 

和變量$測試

$test = time() - (60 * 1); (1 minute) 
$test = date("Y-m-d H:i:s",$test); 

我想要做的是檢查是否1分鐘爲通過。要做到這一點,我有以下代碼:

if(isset($_SESSION["time"]) && (strtotime($_SESSION["time"]) > $test)){ 
    echo "first"; 
}else{ 
    echo "second"; 
} 

獨立地將其中邏輯比較,我使用(<或>),一分鐘刷新頁面仍然呼應爲什麼同樣的...任何想法後?我發現這真的很奇怪...

+0

所以你存儲在會話變量中的第一次,然後將其與當前時間比較在'$ test'中?在這種情況下,你的條件在'$ test'方面是錯誤的,對於存儲在會話中的那個總是'> =' – fejese 2015-01-09 23:13:08

回答

0

比較應該是這樣

($_SESSION["time"] > $test) 

PHP現在將兩個字符串值,而不是整數(返回值從strtotime調用)和字符串(返回值從date通話比較)

+0

你是什麼意思*現在*?我認爲我的劇本之前工作過,做過一些改變? – 2015-01-09 23:14:36

+0

您正在將'$ _SESSION [「time」]字符串值轉換爲UNIX時間戳整數值並將其與'$ test'字符串值進行比較,該值實際上並不起作用 – 2015-01-09 23:17:41

0

什麼,他真正想要的...

strtotime($_SESSION["time"]) > strtotime($test))