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 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码