2014-03-24 54 views
0

我想檢查一次查詢中某個時刻有多少用戶在線。 的事情是我必須保持爲DATETIME(在在線場)的時候,我想將它與時間()比較。下面是代碼:在php和mysql中比較DATETIME和time()

$online_margin = 10; //in minutes; 

$online_margin = $online_margin*60; 
$difference = time() - $online_margin; 

$query = "SELECT id FROM users WHERE online > $difference"; 

我使用()轉換但沒嘗試過,所以我會很感激,爲什麼一些幫助......

+0

$ query =「SELECT ID FROM users WHERE UNIX_TIMESTAMP(online)> $ difference」; – Smokie

回答

2

你需要將其轉換它比較數據庫字段前Y-m-d h:i:s格式,

$online_margin = 10; //in minutes; 

$online_margin = $online_margin*60; 
$difference = time() - $online_margin; 
$difference = date("Y-m-d h:i:s",$difference); //Convert seconds to Y-m-d h:i:s format 
$query = "SELECT id FROM users WHERE online > $difference"; 

替代:你可以把你列online到unix_time進行比較,

$query = "SELECT id FROM users WHERE UNIX_TIMESTAMP(online) > $difference"; 
1

這比效率低於下面的答案,但它應該工作。

$query = "SELECT id FROM users WHERE UNIX_TIMESTAMP(online) > $difference"