如果代码已存在15分钟,则删除数据库中的行

时间:2017-02-07 05:51:31

标签: codeigniter

在我的模型上,我正在尝试创建一个函数,所以当我重新加载页面时,它将检查是否有任何行都有代码集并检查date_modified时间2017-02-16 13:53:18并且如果已经存在超过15分钟将删除行。

  

问题:在每个帖子上“code”列如果有任何值,那么将检查日期和时间是否已经存在15分钟且代码值仍然存在然后将删除行。

我在下面尝试了这个,但是当我重新加载页面时,它不会删除任何行。

模型功能

react-headroom

控制器构造区域

react-headroom

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您的date_modified字段属于DATETIME类型,您正在将其与integer进行比较(即UNIX_TIMESTAMP函数返回)。

我建议作为一般经验法则,在存储日期时间值时直接使用UNIX时间戳(即 - INT字段),以便于比较和不受影响时区,因为UNIX时间戳是UTC(+0),所以它们可以非常容易地用于时区转换。

因此,当在date_modified字段中存储值时,而不是存储这样的值(该示例显示了PHP中的变量赋值):

$date_modified = date("Y-m-d H:i:s"); // 2017-02-07 10:18:00 in UTC+2 timezone

你会像这样存储它:

$date_modified = time(); // 1486455515 which equals to 2017-02-07 08:18:00 in UTC

答案 1 :(得分:0)

在mysql查询中now()将占用服务器时间,因此最好使用php

传递它
$date = date("Y-m-d H:i:s");
$time = strtotime($date);
$time = $time - (15 * 60);
$date = date("Y-m-d H:i:s", $time);

在模型中

 $this->db->where('date_modified <' $date);