-1

有人对此有任何想法吗?我不知道用什么来代替(1分钟)才能工作; .$checktime['car_date']是数据库中的一个值,就像这样 2012-04-14 04:18:14

$time=time();

    $checktime=mysql_num_rows($get_cars);
        if($time<$checktime['car_date'] - (1 minute))
        {
        $sqlhour = mysql_query("DELETE FROM car
                    WHERE car_date < current_timestamp - interval '1' minute;");

        }
4

2 回答 2

1

您可以直接在 MySQL 中执行此操作,无需在 PHP 中操作日期。

DELETE FROM car
WHERE car_date < DATE_SUB( NOW(), INTERVAL 1 MINUTE );

如果您需要知道要删除的汽车的 ID,则只需先执行 SELECT,即

SELECT id
FROM car
WHERE car_date < DATE_SUB( NOW(), INTERVAL 1 MINUTE );

然后循环并删除它们。

于 2012-04-14T07:22:21.060 回答
0

我相信$checktime['car_date']时间就是秒。如果是这样 1 分钟是:

60

所以你会得到

$time=time();

$checktime=mysql_num_rows($get_cars);
   if($time<($checktime['car_date'] - 60)) {
       $sqlhour = mysql_query("DELETE FROM car WHERE car_date < current_timestamp - interval '1' minute;");
    }

更新

由于$checktime['car_date']变量是一个 sql 时间戳,您应该首先将其转换为seconds since UNIX epoch

$currentTime = time();
$carDate = new DateTime($checktime['car_date']);

$checktime = mysql_num_rows($get_cars);
   if($time < ($carDate->format('U') - 60)) {
       $sqlhour = mysql_query("DELETE FROM car WHERE car_date < current_timestamp - interval '1' minute;");
    }
于 2012-04-14T02:19:18.763 回答