如果MySQL的日期时间与当前日期时间之间的差异超过六十秒,则尝试回显一些文本。

但是我的代码每次都会显示。

<?php
session_start();
require_once 'class.php';

$reg = new USER();

$stmt = $reg->runQuery("SELECT * FROM validation WHERE vid=2");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$usrmail = $row['vdate'];

$login_session_durations = 60;

if(((time() - $usrmail) > $login_session_durations)) {
    echo "Ok";
}
?>


在MySQL中设置的日期和时间为2017-09-17 06:53:39.000000

最佳答案

time()为您提供Unix格式(如1505622974)的输出,因此要进行比较,我们需要两个时间变量都采用相同的格式。

<?php
    session_start();
    require_once 'class.php';

    $reg = new USER();

    $stmt = $reg->runQuery("SELECT * FROM validation WHERE vid=2");
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    $usrmail = $row['vdate']; //The format for vdate: 2017-09-17 06:53:39.000000

    $login_session_durations = 60; //In Seconds

    if(((time() - strtotime($usrmail)) > $login_session_durations)) {
        echo "Ok";
    }
?>

09-25 18:24
查看更多