Сравнение двух меток времени в PHP

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

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

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

Я вставляю время записи в базу данных так же, как эхо в 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

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

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


person Mira    schedule 23.09.2018    source источник


Ответы (1)


Также преобразуйте текущее время в 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
}
person Gurpal singh    schedule 23.09.2018