0

PHPで((現在の時刻 - データベースのタイムスタンプ)>10分)かどうかを確認する方法はありますか? ロックアウトと呼ばれるデータベースに行があります。これまでのところ、次のコードがあります。

echo $row['lockout'];//returns 2013-05-12 22:04:17
echo date("Y-m-d H:i:s")//returns 2013-05-12 22:06:32    

さらに、現在のタイムスタンプをデータベースに挿入すると、約30分ずれているのに、日付と年が正しいのはなぜですか?

4

5 に答える 5

1

PHP では、必要な Unix タイムスタンプを取得するような相対形式でstrtotime関数を使用できます。- 10 minutes

if ( strtotime('- 10 minutes') < strtotime( $row['lockout'] ) ) ...
于 2013-05-12T22:06:56.260 に答える
0

クエリでこれを行います。

WHERE `lockout` < DATE_SUB(NOW(), INTERVAL 10 MINUTE)

または、MySQL の時間を当てにできない場合は、

mysqli_query('
 ... WHERE `lockout` < DATE_SUB(FROM_UNIXTIME(' . time() . '), INTERVAL 10 MINUTE) ...
');

または、バインドされている場合はdate(...)、使用します

mysqli_query('
 ... WHERE `lockout` < DATE_SUB(' . date('Y-m-d H:i:s') . ', INTERVAL 10 MINUTE) ...
');

MySQL と PHP のタイムゾーンとサーバーのタイムゾーンを比較したい場合があります (MySQL と PHP が別々のホストにある場合)。

于 2013-05-12T21:49:07.633 に答える