0

ユーザーアクティビティを記録し、次のように作成されたタイムスタンプを持つログテーブルがあります

function user_log($user_name, $log_data){
 $ipaddress = $_SERVER["REMOTE_ADDR"];
mysql_query("INSERT INTO `logs` (user_id, time_stamp, activity, ip) VALUES ('$user_name', now(), '$log_data', '$ipaddress')");

}

ご覧のとおり、now()関数を使用しました。
ただし、私の問題は、たとえば 28 日 (2419200 秒) よりも古いログを削除できるようにしたいということです。

そのために、次のことを試しました...

$past_date = mktime()-2419200;
mysql_query("DELETE * FROM logs WHERE time_stamp<'$past_date'");

しかし、それは機能しません。私が見逃しているフォーマットに違いがあると思われます。

前もって感謝します、

カム

4

3 に答える 3

0

MySQL が使用する日付形式は次のとおりです。

yyyy-MM-dd

2013-03-31

試す

DELETE * FROM logs WHERE time_stamp < curdate() - 28 day
于 2013-03-31T11:21:13.073 に答える
0
$mysql_date = date("Y-m-d", strtotime($past_date))

このようなものを使用する必要があります。

于 2013-03-31T11:23:27.417 に答える
0

これを試して...

DELETE * FROM logs WHERE time_stamp <= NOW() - INTERVAL 28 DAY
于 2013-03-31T11:26:12.433 に答える