如何检查相对日期


How to check relative date?

我正在编写密码恢复代码,该代码使用以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代码吗?

在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 */ }

只需将MySQL日期结果包装在strtotime()中,并与strtottime("-3天")进行比较

在MySQL 中

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