首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从最后一刻开始活动(PHP)

问从最后一刻开始活动(PHP)
EN

Stack Overflow用户
提问于 2015-11-19 18:28:39
回答 1查看 297关注 0票数 2

我遇到了一些问题,当我试图用最后的活动时间(-1分钟)获取用户时,我完全没有得到任何结果。

这是我的密码:

代码语言:javascript
复制
  if (isset($_POST['message'])) {
    if (!empty($_POST['msg'])) {
      $chatArray = array();
      $s = $_database->query("INSERT INTO chat(`username`, `text`, `date`) VALUES('".$_database->real_escape_string($_POST['username'])."', '".$_database->real_escape_string($_POST['msg'])."', '".TIME()."')");
      $newID = $_database->insert_id;
      $_database->query("UPDATE chatusers SET lastactivity=TIME() WHERE username='".$_POST['username']."'");
      $timestamp = (isset($_COOKIE['chatTimestamp'])) ? $_COOKIE['chatTimestamp'] : TIME();

      $q = $_database->query("SELECT * FROM (SELECT * FROM chat WHERE `date` > ".$timestamp." ORDER BY date DESC LIMIT 0, 24) AS a ORDER BY DATE ASC");
      if ($q->num_rows == 0) { echo '0'; }
      else {
        while ($rad = $q->fetch_array()) {
          // $chatArray["message"][] = array("msgID" => $rad['msgID'], "message" => $rad['text'], "timestamp" => $rad['date'], "date" => date('H:i', $rad['date']), "username" => $rad['username']);

        }
        $query = $_database->query("SELECT * FROM chatusers WHERE `lastactivity` > (NOW() - INTERVAL 1 minute)");
        var_dump($query);
        while ($row = $query->fetch_array()) {
          $chatArray["users"][] = array("username" => $row['name'], "lastactivity" => $row['lastactivity']);
        }
        print_r($chatArray);
      }
    }
  }

正如您所看到的,在im尝试获取结果之前,我更新了num_rows活动,如果我将select行更改为"SELECT * FROM chatusers WHERE lastactivity < (NOW() - 1 minute)",那么数据库中的所有用户都会得到。

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-19 18:32:33

PHP的time()、MySQL的TIME()和MySQL的NOW()并不完全相同。此外,系统时间和MySQL服务器时间可以在不同的时区。

PHP的time()返回一个时间戳(整数)。

MySQL的TIME()返回时间,就像在12:34:31中一样。

MySQL的NOW()返回日期和时间字符串,就像在2015-11-19 12:34:31中一样。

修正:

  • 如果使用的是datetime列,请在所有三个语句(INSERT、UPDATE和SELECT)中使用SQL NOW()。
  • 如果您使用的是timestamp列,请在这三个列中使用SQL TIME()。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33811641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档