2014-03-24 83 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"