0

MySQL と PHP 5.3 の使用

という名前の MySQL DATETIME フィールドがありますlast_accessed。の形式です。yyyy-mm-dd hh:mm:ss

last_accessedの値がと比較して 30 分より古いかどうかを確認したいnow$stillInTimeもしそうなら、私はと呼ばれる変数が欲しい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 に答える