如何使用pdo prepare语句计算到期日期?

时间:2018-12-12 08:05:11

标签: php mysqli pdo

我需要使用当前日期和创建日期来计算链接到期日期,以检查链接是否过期。 我正在以这种格式向数据库添加日期:

$expires = date("U") + 1800;

并尝试这样计算:

 $currentDate = date("U");

$result = $pdo->prepare("SELECT * FROM pwdreset WHERE pwdResetSelector = :pwdResetSelector AND pwdResetExpires >= :pwdResetExpires");
$result->bindValue(':pwdResetSelector', $selector);
$result->bindValue(':pwdResetExpires ', $currentDate);
$result->execute();

但是它不能计算正确,因此将我重定向到错误页面,而不是显示表单以填充详细信息。

1 个答案:

答案 0 :(得分:0)

如果您要查询的是从数据库中返回过期值,我想您需要做的就是将等式设置为小于或等于。

如果您在数据库中将到期日期设置为date(U) + 1800,则显然这是将来的日期。

因此,如果今天的日期大于pwdResetExpires日期,则应该重新设置,因为它已经过期。

您的查询所说的是if the pwdResetExpires date is greater than today's date。这意味着它没有过期,因为今天的日期仍未过pwdResetExpires日期。

好像您在查询pwdResetExpires is less than today's date中说的那样,它已经过期。

SELECT * FROM pwdreset WHERE pwdResetSelector = :pwdResetSelector AND pwdResetExpires <= :pwdResetExpires