簡體   English   中英

比較數據庫中PHP中的日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM