doufu7835 2014-03-24 10:33
浏览 121
已采纳

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

I would like to check how many users are online on a certain moment on a single query. The thing is I have the time kept as DATETIME (in the online field) and I would like to compare it with time(). Here is the code:

$online_margin = 10; //in minutes;

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

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

I've tried using convert() and cast but failed, so I'd appreciate some help on why...

  • 写回答

2条回答 默认 最新

  • duanfang7270 2014-03-24 10:36
    关注

    You need to convert it to Y-m-d h:i:s format before comparing it to db field,

    $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";
    

    Alternative: You can convert your column online to unix_time for comparing,

    $query = "SELECT id FROM users WHERE UNIX_TIMESTAMP(online) > $difference";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置