如何查询相对日期?

时间:2012-09-03 21:40:42

标签: php mysql

我正在编写使用令牌和以date("Y-m-d H:i:s")格式存储的日期的密码恢复代码,例如2012-09-06 18:59:53。我使用下面的代码检查用户ID的令牌密钥是否存在:

$sql = mysql_query("SELECT * FROM `recoveryemails` WHERE `UserID` = '$uid' and `Key` = '$key' and `expDate` >= '$curDate'");

我需要在检索expDate之后添加另一个条件,以使用PHP检查它是否超过3天。任何人都可以帮我解决这个PHP代码吗?

3 个答案:

答案 0 :(得分:3)

在MySQL中更容易:WHERE ... AND expdate >= DATE_SUB(NOW(),INTERVAL 3 DAY)

但如果你坚持用PHP做,那么你需要:

$threedaysago = strtotime("-3 days");
$expdate = strtotime($row['expDate']);
if( $expdate >= $threedaysago) { /* more recent than three days ago */ }

答案 1 :(得分:0)

在MySQL中

expDate > DATE_SUB(NOW(), INTERVAL 3 Days)

答案 2 :(得分:0)

将MySQL日期结果包装在strtotime()中并与strtotime(' - 3天')进行比较