【问题标题】:activity in past hour过去一小时的活动
【发布时间】:2009-09-22 03:39:06
【问题描述】:

我正在尝试确定用户在过去一小时内是否有活动。以下是我的代码,但无论如何它总是返回 yes:

$houraway = (int)mktime() + (60 * 60);
$now = mktime();

while($user = mysql_fetch_array($qusers))   {
    echo $user['Name']." - ";
    $datetime = explode(" ", $user['Custom6']);
    $date = $datetime[0];
    $date = explode("-", $date);
    $time = $datetime[1];
    $time = explode(":", $time);
    $hr = $time[0];
    $min = $time[1];
    $sec = $time[2];
    $y = $date[0];
    $m = $date[1];
    $d = $date[2];
    $lastloginmk = (int)mktime($hr, $min, $sec, $m, $d, $y);
    echo " - ".$lastloginmk;
    if($lastloginmk <= $houraway) { echo "yes"; } else { echo "no"; }
    echo "<br />";
}

上次活动时间存储在数据库中,如下所示:

2009-09-22 13:32:28

提前致谢!

瑞恩

【问题讨论】:

  • **第 2 行无关紧要。
  • 为什么不打印$lastloginmk$houraway?继续打印变量,直到找出错误所在。

标签: php date time


【解决方案1】:

线

$houraway = (int)mktime() + (60 * 60);

正在展望未来一个小时。最后一次登录总是比未来早,因为最后一次登录必须是过去。

我认为您希望上次登录大于一小时现在。更改$houraway 并更改您的最后一个比较,您应该可以开始了。

【讨论】:

    【解决方案2】:

    我认为你想要的代码是:

    $hourago = mktime() - (60 * 60);
    
    while($user = mysql_fetch_array($qusers))   {
        echo $user['Name']." - ";
        $lastloginmk = strtotime($user['Custom6']);
        echo " - ".$lastloginmk;
        if($lastloginmk <= $hourago) { echo "yes"; } else { echo "no"; }
        echo "<br />";
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多