在PHP和mysql中将DATETIME与time()进行比较

时间:2014-03-24 10:33:10

标签: php mysql datetime

我想查看单个查询在特定时刻有多少用户在线。 问题是我将时间保持为 DATETIME (在 在线 字段中),我想将其与时间进行比较( )即可。这是代码:

$online_margin = 10; //in minutes;

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

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

我尝试过使用 convert()强制转换,但失败了,所以我很感激为什么会有一些帮助......

2 个答案:

答案 0 :(得分:2)

在将其与db字段

进行比较之前,您需要将其转换为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 :(得分:1)

这比下面的答案效率低,但它应该有效。

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