Сравнение двух меток времени в PHP - PullRequest
0 голосов
/ 23 сентября 2018

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

Я определил TimeZone, как показано ниже

define('TIMEZONE', 'Asia/Kolkata');
date_default_timezone_set(TIMEZONE);
$date = date('Y/m/d h:i:s', time());

Я вставляю время записи в базу данных так же, как echo в php.

Теперь я получаюи сравнивая оба времени, как показано ниже

$last_time = $row['time'];
$current_time = $date;

    if(($current_time-strtotime($last_time )) > 1800) {
    //send mail
    }
    else {
    // give error
    }

Я пробовал эхо оба раза, и я получаю такой результат

$last_time = 2018-09-23 07:56:37
$current_time = 2018/09/23 07:56:51
($current_time-strtotime($last_time ) = -1537667579

Я не знаю, что с ним не так.

Дайте мне знать, если с ним что-то не так.

1 Ответ

0 голосов
/ 23 сентября 2018

Также конвертируйте текущее время в strtotime.Убедитесь, что оба формата даты одинаковы

define('TIMEZONE', 'Asia/Kolkata');
date_default_timezone_set(TIMEZONE);
$date = date('Y/m/d h:i:s', time());

$last_time = $row['time'];
$current_time = $date;

if((strtotime($current_time)-strtotime($last_time )) > 1800) {
//send mail
}
else {
// give error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...