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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?