当前,我有一个按钮,登录用户可以每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