0

使用 MySQL 和 PHP 5.3

我有一个名为last_accessed. 它的格式为yyyy-mm-dd hh:mm:ss

我想检查 中的值last_accessed是否比now. 如果是这样,我想要一个名为$stillInTimebe的变量false。否则,它是true

我需要知道用 PHP 编写比较的最佳方法是什么。最好,我的意思是最可读的代码块。

我在用date_default_timezone_set('UTC');

代码块应该灵活,以允许使用分钟、小时、天、月和年的单位进行比较。

我在下面有一个尝试:

public function isInTime($datetimeInMySQL, $intervalInString = '30 minutes') {
    $mySQLDateTimeObject = new DateTime($datetimeInMySQL);
    $dateTimeInterval = date_interval_create_from_date_string($intervalInString);
    $nowDateTimeObject = new DateTime('now');
    $mySQLDateTimeObject->add($dateTimeInterval);
    $stillInTime = ($mySQLDateTimeObject > $nowDateTimeObject);

    return $stillInTime;

}

这是我对我的问题的尝试。我希望通过 StackOverflow 寻求更好的答案。

4

1 回答 1

0

您可以在MySQL中编写如下

SELECT * FROM table WHERE DATEADD(last_accessed INTERVAL 30 MINUTE) <= NOW()
于 2013-08-03T08:50:45.630 回答