2015-08-02 2 views
0

Я пытался добавить к истечению срока действия для запросов на сброс пароля.Сравнение текущего DateTime со значением в MySQL

Когда пользователь запрашивает запрос пароля на данный момент, он сохраняет дату истечения срока действия в базе данных, поскольку NOW() + INTERVAL 2 DAY - так ровно через 2 дня.

Когда пользователь возвращается к странице, следуя ссылке на сброс, он проверяет ключ сброса, а затем запускает ряд операторов if, один из которых я хочу проверить, больше ли текущее значение DateTime, чем текущее время находится в базе данных, и если она отображает сообщение об ошибке.

Я пробовал множество способов, поскольку большинство из них склонны предлагать использовать SQL для оценки этого. Самый последний и самый популярный из того, что я нашел в том, чтобы сделать следующее:

"SELECT *, DATE(`Expiration`) > DATE(NOW()) AS is_current FROM password_reset WHERE Reset_link='$key'" 

Таким образом, вы могли бы накормить результаты в переменной и проверить его в, если заявление, как is_current будет либо 0 или 1, то есть:

if ($result_check_row['is_current']){ 
     echo '<div class="warning">Your password reset request has now expired. Please request a new one by completing the form again.''</div>'; 
    } 

Я не везло с этим, или любой из других вещей, которые я пробовал, которые включают в себя создание метки времени с помощью PHP, чтобы проверить против этого.

Может ли кто-нибудь увидеть, куда я иду, или предложить хорошую альтернативу?

ответ

1

попробовать этот запрос, он будет производить разницу дат между текущей датой и датой истечения ...

SELECT DATEDIFF(DATE(`Expiration`), DATE(NOW())) AS DiffDate FROM password_reset WHERE Reset_link='$key'" 
Смежные вопросы