2017-04-06 15 views
0

48時間(2日間)後に有効期限が切れるトークンを作成するユーザー登録システムをセットアップしようとしています。私はこれをプログラムしようとしたが役に立たなかった。私は、コードをテストするとき、私はこのエラーを取得するトークンの検証と有効期限

A PHPエラーが
重要度を発生しました:エラー
メッセージ:モデル/ User_model.php
行番号:58クラスのTimeDateを指定 "
ファイル名が見つかりません以下

コード

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

あなたは私がそれを変更し、この タイプだ '新しいDateTime' http://php.net/manual/en/datetime.construct.php –

+0

を意味するものではありませんでしたあなたは必ず'新しいTimeDate':例外を メッセージ:DateTime :: __ construct():位置1( - )の時刻文字列(Ymd)の解析に失敗しました:予期しない文字 ファイル名:User_model.php 行番号:58 – David

答えて

1

ヨーヨーでありますuはまたstrtotime()

を仮定すると、使用することができます

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

トークンが48時間後に期限切れになりますので、我々はあなたが日付のみが必要な場合$created

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

変数の日付に48時間を追加する必要があります時刻ではなく時間を省略することができます。H:i:s
$expireDateと今日のタイムスタンプを比較できるようになりました。

$today = date("Y-m-d H:i:s"); 
if (strtotime($today) > strtotime($expire)) { 
    echo "expired"; 
} else { 
    echo "not yet"; 
} 
関連する問題