[英]Comparing dates in PHP from database
我正在用PHP的一個小項目編寫令牌認證系統。 向腳本發出請求,然后腳本將生成令牌並將其存儲到當前時間為+2分鍾的到期日期的數據庫中。
然后是另一個腳本,該腳本在請求中獲取令牌,檢查令牌是否有效並且令牌尚未過期。 這就是我卡住的地方。 我無法成功比較兩個日期,即使條件應該為真,但事實並非如此。
這是我將時間插入數據庫的方式;
// Now, we want to gen the token.
$token = randomKey(20);
// Current time + 2 minutes
$time = date("m/d/Y h:i:sa", time() + 120);
// Insert the token into the DB
$obj->query("INSERT INTO `tokens`(`username`, `token`, `expiry`) VALUES ('$uid', '$token', '$time')");
這是我嘗試比較它們的方式;
if(strtotime($row['expiry']) < strtotime(date("m/d/Y h:i:sa")))
無論如何,即使將數據庫中的時間更改為過去的一天,此條件也始終評估為false。
它為假,因為其格式不正確。
嘗試執行echo date(“ m / d / Y h:i”,date(“ m / d / Y h:i:sa”,time());
您會得到一個錯誤。
為什么不同時使用unix時間戳插入DB和稍后讀取? 這么容易。
$time = date("U") + 120;
// Do DB insert....
if($row['expiry'] < date("U")){
// Do something...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.