0
 date_default_timezone_set('Asia/Calcutta');

$currenttimeminus30=date('H:i:s', strtotime("-30 minutes"));


 $query1=mysql_query("select * from outdoor where latitude='$latitude%' && longitude='$longitude%' && user_id='$userid' && last_updated<$currenttimeminus30");

last_updated < $currenttimeminus30 .last_updated が屋外テーブルのフィールドであり、タイプが時間であるかどうかを比較する必要があります。last_updated 値は 13:05:11 のようなものです

4

2 に答える 2

1

TIME()次の関数を使用できます。

SELECT * 
FROM outdoor 
WHERE latitude = '$latitude%' 
AND longitude = '$longitude%' 
AND user_id = '$userid' 
AND last_updated < TIME($currenttimeminus30)

異なるタイムゾーンを使用しない場合は、PHP で時間を作成したくありません。のみを使用できますINTERVAL

SELECT * 
FROM outdoor 
WHERE latitude = '$latitude%' 
AND longitude = '$longitude%' 
AND user_id = '$userid' 
AND last_updated < TIME( NOW() - INTERVAL 30 MINUTE )

ノート:

datetimeフィールド型として使用することをお勧めします。あなたの場合、レコードが今日ではなく、数日、数か月、数年など前に更新されると、間違った結果が得られる可能性があります。

非推奨mysql_queryのため、使用しないでください:

この拡張モジュールは PHP 5.5.0 で非推奨になり、将来的に削除される予定です。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。詳細については、MySQL: APIガイドの選択および関連する FAQも参照してください。この機能の代替手段は次のとおりです。

mysqli_query()

PDO::クエリ()

于 2013-04-15T10:19:46.000 に答える
0

mysql のINTERVALを使用することをお勧めします。

last_updated < time ( now() - INTERVAL 30 MINUTE )

ここ:

$query1=mysql_query("select * from outdoor where latitude='$latitude%' and longitude='$longitude%' and user_id='$userid' and last_updated < time ( now() - INTERVAL 30 MINUTE) )";
于 2013-04-15T10:06:16.343 に答える