如何允许用户每天投票一次,而不是过去24小时


How to allow user to vote once per day not for last 24hrs?

我正在尝试创建允许用户每天只投票一次的功能。为此,我在表中创建了ratingTimestamp字段,在其中插入投票时间的当前时间戳值。

以及验证他每天只能投票一次的用户。我正在使用这个MySQL查询:

SELECT count( * ) AS votecount
FROM ratings AS e
WHERE e.userId =5
AND e.ratingTimestamp >= NOW( ) - INTERVAL 1
DAY 

问题是这个查询在24小时的基础上给我votecount,但我只希望它基于日期。

就像如果用户在2014年3月12日11:59:00 AM投票,他再次尝试在2014年3月13日4:00PM投票,他可以投票,但使用上面的查询是不可能的,因为它给了我投票计数1,因为它是从下午4:00开始计算的最后24小时。

我认为你应该这样写:

$sql="SELECT count( * ) AS votecount FROM ratings WHERE DATE(e.ratingTimestamp) = CURDATE()";

或者你可以尝试通过PHP

$sql="SELECT count( * ) AS votecount FROM ratings WHERE e.ratingTimestamp >= '".strtotime("today")."' AND e.ratingTimestamp < '".strtotime("tommorow")";

或者查看此链接

从MySQL中按当前日期检索记录