自从我在这里发布以来,我做了很多编码而不必问,但我被卡住了:(
我有一个名为“$ date”的变量,它始终是当前日期。现在我有日志设置为日期,现在我要做的是从当前日期删除任何超过一周的日志。这就是我的做法(?意味着我不知道该放什么)。
$date = date('Y-m-d H:i:s');
$one_week_old = $date - ?;
$clearlog = mysqli_query($con,"DELETE FROM logs WHERE logs.date < '$one_week_old'");
答案 0 :(得分:2)
您可以直接查询它,而不是使用其他变量:
$clearlog = mysqli_query($con,"DELETE FROM logs WHERE logs.date <
dateadd(week,-1,getdate()));
答案 1 :(得分:1)
$one_week_old = date('d-m-Y', strtotime("-1 week"));
答案 2 :(得分:1)
你可以这样做:
$one_week_old = date("Y-m-d",strtotime("-1 week"));
答案 3 :(得分:1)
如果您稍后在PHP中不需要此日期信息,我建议您直接在MySql查询中执行此操作。请考虑,此示例将仅修改datepart,而不是当前时间戳的时间部分。没有确切地说明你是想删除整天还是那些早于604800秒(7 x 24 x 60 x 60 = 604800)的数据。
MySQL 5.5 Reference Manual 12.7 Date and Time Functions
mysqli_query($con, "DELETE FROM logs WHERE logs.date < DATE_SUB(NOW(), INTERVAL 1 WEEK)");
答案 4 :(得分:1)
$date = date('Y-m-d');
$newdate = strtotime ( '-1 week' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-d' , $newdate );
$query="DELETE FROM logs WHERE logs.date < '".$newdate." 00:00:00 '";
$clearlog = mysqli_query($con,$query);
答案 5 :(得分:0)
如果您更喜欢Oriented Object范例,我们有:
$oneWeekAgo = (new DateTime('-1 week'))->format('d/m/Y');
说明: