当前,我有一个按钮,登录用户可以每10分钟按一次,方法是将当前时间+ 10分钟插入到数据库中。

public function setCooldown($address){
    $extra = strtotime("+ 10 minutes");
    $cooldown =  date("h:i:s", $extra);

    $query = $this->pdo->prepare("UPDATE users SET cooldown = '$cooldown'
                                  WHERE address = '$address'");

    if($query->execute()){
        return true;
    }else return false;
}


然后,它使用以下if语句检查是否经过了10分钟:

    if(strtotime($cooldown) >= time()){
        return true;
    }else return false;


$cooldown从数据库获取冷却时间。

问题:


如果单击12:55(AM / PM)处的按钮,cooldown将设置为1:05(AM / PM)。


因为12:55> = 1:05,所以不会有冷却时间。


如果单击12:45(AM / PM)的按钮,则cooldown将设置为12:55(AM / PM)


如果您忘记单击下一个,例如,冷却时间结束后10分钟,time()将为1:05,冷却时间将近12小时!

问题:无论一天中的什么时间,我如何将冷却时间设置为10分钟?

笔记:


cooldown在我的数据库中设置为varchar


任何帮助表示赞赏!

最佳答案

我刚刚检查了您的代码。您应该使用24h格式作为日期(“ H:i:s”)。希望这能解决您的问题。
请检查以下链接:

http://php.net/manual/en/function.time.php

http://www.w3schools.com/php/func_date_date.asp

07-26 09:29