如何在PHP中获得'Column+7天'>=NOW的位置
我有个问题。也许这个问题很愚蠢,但我一直在到处寻找,没有得到我想要的。 如果我得到答案,我会立即删除我的帖子 我有一张这样的桌子:如何在PHP中获得'Column+7天'>=NOW的位置,php,sql,Php,Sql,我有个问题。也许这个问题很愚蠢,但我一直在到处寻找,没有得到我想要的。 如果我得到答案,我会立即删除我的帖子 我有一张这样的桌子: ID | Title | Date ----------------------------- 1 | AAA | 2019-03-25 2 | BBB | 2019-03-21 3 | CCC | 2019-03-23 ID | Title | Date ---------
ID | Title | Date
-----------------------------
1 | AAA | 2019-03-25
2 | BBB | 2019-03-21
3 | CCC | 2019-03-23
ID | Title | Date
-----------------------------
2 | BBB | 2019-03-21
$date = time();
$date_exp = date('Y-m-d H:i:s', strtotime('+7 day', $date));
我试过这个:
function get_all() {
$plusdays = strtotime('+7 day');
$now = date('Y-m-d H:i:s');
$this->datatables->select('*');
$this->datatables->from('atable');
$this->datatables->where('crt_date + INTERVAL 7 day >=', $now);
return $this->datatables->generate();
}
我如何像这样显示表格:
ID | Title | Date
-----------------------------
1 | AAA | 2019-03-25
2 | BBB | 2019-03-21
3 | CCC | 2019-03-23
ID | Title | Date
-----------------------------
2 | BBB | 2019-03-21
$date = time();
$date_exp = date('Y-m-d H:i:s', strtotime('+7 day', $date));
因此,我想显示在某个日期创建的数据,如果数据创建后超过7天,则数据将过期。还是有其他想法?
我必须添加过期日期列吗?
谢谢这里有一个SQL查询应该可以运行,不,它不一定是最优雅的查询:
SELECT *
FROM atable
WHERE (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(date)) >= (60 * 60 * 24 * 7);
我认为您可以将其适当地转换为PHP代码。基本上,我得到的是现在和存储日期之间以秒为单位的差值,然后看看差值是否大于或等于七天。我决定再添加一列is exp\u date,以便将来更容易使用。 代码如下:
ID | Title | Date
-----------------------------
1 | AAA | 2019-03-25
2 | BBB | 2019-03-21
3 | CCC | 2019-03-23
ID | Title | Date
-----------------------------
2 | BBB | 2019-03-21
$date = time();
$date_exp = date('Y-m-d H:i:s', strtotime('+7 day', $date));
谢谢大家
提示不要在性能问题所在的列中使用函数或求值
在这种情况下,您必须将$now减去7天,然后
$this->datatables->where('crt_date >=', $theDateBefore7Day);
收到答案后,不要立即删除您的问题。StackOverflow不是这样工作的。删除你的问题会剥夺一个拥有相似或相同问题的人!当你将来得到答案时,你会问这个问题。你使用的是什么数据库?mysql?神谕sql server?好的,我不会立即删除此帖子@IsaiahI使用数据库mysql@catcon为什么不现在计算-7天作为一个常量表达式,并使用它,而不是潜在地将7天添加到数百万个日期中?日期+7>=现在等于日期>=现在-7好的,我以后会试试。非常感谢。