令牌验证和过期

时间:2017-04-06 01:17:10

标签: php codeigniter

我正在尝试设置一个用户注册系统,该系统会创建一个在48小时(2天)后过期的令牌。我试图对此进行编程,但无济于事。当我测试代码时,我收到此错误

  

遇到PHP错误   严重性:错误
  消息:Class' TimeDate'没找到
  文件名:models / User_model.php
  行号:58

以下是代码

    public function isTokenValid($token)
{
    $q = $this->db->get_where('tokens', array('token' => $token), 1);        
    if($this->db->affected_rows() > 0){
        $row = $q->row();             

        $created = $row->created;
        $createdTS = strtotime($created);
        $expiredate = new TimeDate('Y-m-d'); 
        //$todayTS = strtotime($today);
        $expiredate->add(new DateInterval('P2D'));
        if($createdTS != $expiredate){
            return false;
        }

        $user_info = $this->getUserInfo($row->user_id);
        return $user_info;

    }else{
        return false;
    }

}  

1 个答案:

答案 0 :(得分:1)

你也可以使用strtotime()

假设:

// the timestamp the token was created
$created = $row->created;

由于令牌将在48小时后过期,我们需要添加48小时的日期变量$created

$expireDate = date("Y-m-d H:i:s", strtotime($created . " + 48 hours"));

如果您只想要日期部分而不是时间,则可以省略H:i:s
您现在可以将$expireDate与今天的时间戳进行比较。

$today = date("Y-m-d H:i:s");
if (strtotime($today) > strtotime($expire)) {
    echo "expired";
} else {
    echo "not yet";
}
相关问题