我有一个无法解决的问题。我有一个功能,禁止用户每30秒发布一次以上,它可以正常工作,但是我想显示剩余时间。
该函数如下所示:
function isFlooding($userid)
{
$time = time() - 30;
$recentPost = $db->prepare('SELECT MAX(posted) FROM comments WHERE poster = ?');
$recentPost->execute(array($userid));
return ($recentPost->fetchColumn() > $time) ? true : false;
}
我能以某种方式返回剩余时间而不是真实时间吗?
我试过了
$waitTime = 30 - (time() - $recentPost->fetchColumn());
$waitTime = floor($waitTime / 60);
return ($recentPost->fetchColumn() > $time) ? $waitTime : false;
但它不返回任何内容,$ waitTime始终为空
最佳答案
你为什么要除以60?
函数time()
以秒为单位返回时间,然后将其除以60-由于没有完整的分钟数,因此它仅由于被四舍五入而返回0。
所以正确的代码应该就是这一行$waitTime = 30 - (time() - $recentPost->fetchColumn());
关于php - 洪水功能,显示时间直到可以再次发布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34741820/