我应该如何在PHP中创建计时器,以计算最后一个请求中用户的timediff?

我应该如何在PHP中创建计时器,以计算最后一个请求中用户的timediff?,php,mysql,Php,Mysql,嘿,伙计们,我正在尝试制作一个计数器,从用户上次按下按钮(对于ex请求的任何内容)算起10分钟 我所做的,是在Mysql中获取时间戳,代码如下 $timequery =" SELECT NOW() AS cur, ( SELECT lastclaim FROM table1 WHERE id =".$id." ) AS mytime "; if( $qry=mysql_query( $timequery ) ) { $timer1 =strtotime( mysql_result($q

嘿,伙计们,我正在尝试制作一个计数器,从用户上次按下按钮(对于ex请求的任何内容)算起10分钟

我所做的,是在Mysql中获取时间戳,代码如下

$timequery =" SELECT NOW() AS cur, ( SELECT lastclaim FROM table1 WHERE id =".$id." ) AS mytime "; 
if( $qry=mysql_query( $timequery ) )
{
    $timer1 =strtotime( mysql_result($qry, 0,'mytime')); 
    $timer2 =strtotime( mysql_result($qry, 0,'cur')); 
    $timer = abs( $timer2 - $timer1);
    return $timer;
}

请向我推荐解决此问题的更好逻辑,或指导我改进此代码。

我不会去询问数据库,您可以通过会话来完成,这样您将拥有更少的数据库访问权限。也就是说,你可以这样做:

$nowtime = date('Y-m-d h:i:s');

if(isset($_SESSION['timeOfLastAction']){
    $timeOfLastAction = $_SESSION['timeOfLastAction'];
}else{
    $timeOfLastAction =  $nowtime;
}

$endtime = strtotime( $timeOfLastAction ) + 600; // 10 minutes == 600 seconds

if($nowtime > $endtime){ //10 min or more from last action
    //do your stuff
    $_SESSION['timeOfLastAction'] = date('Y-m-d h:i:s'); //reassing
}
如果您需要/想要存储在数据库中,您可以将
If{}else{}
部分更改为您的实际代码。。但您必须访问数据库、存储值、更新每个请求中的值等。您可以使用mysql本机函数,如:

SELECT * FROM table1
WHERE lastclaim <= NOW() - INTERVAL 10 MINUTE
AND id=$id
从表1中选择*
最后一次索赔时间为10分钟

这是你的一个类似问题:


我希望有帮助

你也可以在JS中,或者通过cookies,这对你来说是可能的吗?