简体   繁体   中英

PHP check if date and time has passed 15 minutes

I'm having some trouble calculating if time is past 15 minutes, on a date and time in my database. How can I check this?

I have this in my database (example):

2014-01-30 15:29:31

And then I get the date from PHP:

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

But how can I check if the time has passed 15 minutes, or if it's a different day?

I have this code so far:

$date = date("Y-m-d H:i:s");
$sql = "SELECT date FROM reset WHERE session_id = '".$sessid."' limit 1";
$result = mysql_query($sql);
$value = mysql_fetch_object($result);
$dbdate = $value->date;

$checkdate = strtotime($dbdate);
if ($checkdate - time() > 15 * 60) {
    error_log("15 mins passed");
}

You can convert the date to a timestamp with strtotime (which supports the MySQL date format) and then compare it to the current timestamp from time .

$dbtimestamp = strtotime($datefromdb);
if (time() - $dbtimestamp > 15 * 60) {
    // 15 mins has passed
}

To compare the dates, you can use date to get the year/month/day from the timestamp and then compare them against the current date.

if (date("Y-m-d", $dbtimestamp) != date("Y-m-d")) {
    // different date
}

Using a DateTime object:

$dateTimeObject = new \DateTime($dateString);
//and subtract using an interval
$dateTimeObject->sub(new \DateInterval("PT15M"));
$newDateString = $dateTimeObject->format("Y-m-d H:i:s");

you cans use DATE_FORMAT functions.

$actual_minute = date("i");
$data = mysql_query("SELECT DATE_FORMAT(date,'%i') minutes FROM reset WHERE session_id = '".$sessid."'");
$database_minute = $data{'minutes'};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM