代码之家  ›  专栏  ›  技术社区  ›  James

MySQL DateTime经过的PHP时间

  •  0
  • James  · 技术社区  · 6 年前

    我正在用PHP编写一个登录系统,希望实现一个函数,检查上次登录失败后的15分钟是否已经过去。

    在my users表中的MySQL数据库中,有一个名为last\u login\u datetime的列,定义为SQL的datetime格式,例如2018-02-24 21:12:57。

    这是我用来检查上次登录失败后是否已过15分钟的代码

    $dateTime = date("Y-m-d H:i:s");
    
    if($row['user_locked']==$statusY AND $dateTime - strtotime($row['last_loginfail_datetime'] > 15 * 60))
    {
    .....
    }
    

    目前这似乎对我不起作用,我希望有人能指出我错在哪里?

    提前谢谢。

    3 回复  |  直到 6 年前
        1
  •  4
  •   man0v    6 年前

    这不起作用,因为您正在从字符串日期中减去unix时间。你需要做的是 $dateTime 作为unix时间。

    $dateTime = strtotime("now");
    
        2
  •  1
  •   Istiaque Ahmed    6 年前

    仅使用 strtotime($dateTime) 而不是 $dateTime if 条件 strtotime 返回UNIX tiemstamp,即:自1970年1月1日00:00:00 GMT以来的秒数 $dateTime=日期(“Y-m-d H:i:s”);

    if($row['user_locked']==$statusY AND strtotime($dateTime) - strtotime($row['last_loginfail_datetime'] > 15 * 60))
    {
    .....
    }
    
        3
  •  0
  •   Abiud Orina ValdaXD    6 年前

    您的代码无法工作,因为您的日期将被读取为字符串。请尝试以下操作:

    $dateTime = strtotime("now");
    
    if($row['user_locked']==$statusY AND $dateTime - strtotime($row['last_loginfail_datetime'] > 15 * 60))
    {
    .....
    }