簡體   English   中英

PHP檢查10分鍾是否過去了

[英]PHP Check if 10 minutes has gone by

我想相互比較兩個dates ,看看是否已經過去了10分鍾。

這是我得到的代碼,但是我不太清楚該怎么做。

我從我的表(保存為獲得第一個日期timestamp ,例如:2017年3月26日22時33分四十五秒),然后我想將它與比較time是正確的now

$sql = "SELECT saved_time from table1 where email = '$email'";
$stmt = $conn->prepare($sql);
$stmt->execute();
while($row = $stmt->fetch()) {
    $savedTime = $row[0];
}
$now = time();
if (/*10 minutes has passed between saved time and now*/) {
    echo "Your account is unlocked";
} else if (/*10 minutes hasn't passed*/) {
    echo "Your account is locked";
}

試試下面的代碼:

    $timezone = "Asia/Kolkata";// Select Timezone as of your Preference or MySQL Server Timezone
    date_default_timezone_set($timezone);
    $sql = "SELECT saved_time from table1 where email = :email";
    $stmt = $conn->prepare($sql);
    $stmt->execute(array(':email' => $email));
    while($row = $stmt->fetch()) {
        $savedTime = $row[0];
    }

    // Uncomment below Line if $savedTime is in MySQL DATETIME Format
    // $savedTime = strtotime($savedTime);
    $now = time();

    if (round(($now - $savedTime) / 60,2) >= 10){
       echo "Your account is unlocked";
    } elseif (round(($now - $savedTime) / 60,2) < 10){
       echo "Your account is locked";
    }
if $now = time(); #(this will generate a timestamp)

假設$savedTime = $row[0]; 是MySQL日期字段,您可以執行

$savedTimeTimestamp= date("Y-m-d H:i:s", $savedTime);

...現在10時60秒就是10分鍾,所以

if ($now > ($savedTimeTimestamp+600))

應該做的工作

如果mysql解決方案適合您,那么

select * from table T where TIMESTAMPDIFF(MINUTE,.saved_time,NOW()) > 10 

如果您在php中需要它,那么

$db_time = $row['saved_time'];//as you have stored in timestamp already
$curr_time = strtotime(date('Y-m-d H:i:s'));
$diff =  round(abs($db_time - $curr_time) / 60,2);
if($diff > 10)

更新

select now() as curr_time, saved_time from table where COND;

然后在PHP

$diff = $curr_time-$saved_time;
if($diff > (10*60 ))

我不確定這是否行得通。 但是只是一個想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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