首页 > 解决方案 > 比较 PHP 中的两个时间戳

问题描述

我试图在我的联系表格中防止垃圾邮件。当任何人使用联系表格联系时,我会将他的 IP 地址保存在当前时间的数据库中。如果有人尝试联系,我正在检查数据库中的 IP,如果数据库中有 IP 地址条目,我将获取它的时间戳并将其与当前时间戳进行比较,但我认为它有问题,它给了我错误的时间,所以用户是仍然可以发送消息。

我已经定义了 TimeZone 如下

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

我在数据库中插入写入时间,与 php 中的 echo 相同。

现在我正在获取并比较两个时间,如下所示

$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

我不知道它有什么问题。

让我知道它是否有任何问题。

标签: phphtmldatetimemysqli

解决方案


还将当前时间转换为 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
}

推荐阅读