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_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 回答
0

MySQL 使用的日期格式是

yyyy-MM-dd

例子

2013-03-31

尝试

DELETE * FROM logs WHERE time_stamp < curdate() - 28 day
于 2013-03-31T11:21:13.073 回答