我有一个无法解决的问题。我有一个功能,禁止用户每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/

10-11 02:44