日期晚于

Where date is later than

我将日期存储为 'd-m-Y H:i:s'。

我需要检查这个存储日期是否晚于 $limit_date 变量。 $limit_date 变量是当前日期的 -30 天,存储在 'd-m-Y' 中。

我原以为下面的方法可行,但没有返回结果。

$limit_date = strtotime('-30 day');
$limit_date = date("d-m-Y", $limit_date);

$this->db->where('date_submitted >', $limit_date);

我的测试 date_submitted 是“25-04-2017 09:13:13”,$limit_date 返回“26-03-2017”。

试试这个:

$limit_date = strtotime('-30 day');
$limit_date = date("d-m-Y H:i:s", $limit_date);

$this->db->where('date_submitted >', $limit_date);

我认为,如果您不想弄乱 hours:minutes:seconds

,那么将数据库中的 date_submitted 查询转换为 DATE 会更好

示例:

$limit_date = strtotime('-30 day');
$limit_date = date("d-m-Y", $limit_date);
$this->db->where('DATE(date_submitted) >', $limit_date);

尝试:

WHERE date_submitted > DATE_ADD(CURDATE(), INTERVAL - 30 DAY) // for 30days

WHERE date_submitted > DATE_ADD(NOW(), INTERVAL - 30 DAY) // for 30*24hours

在此代码中,我们使用 DateTimeDateIntervalDateInterval 用于减去您想要的确切天数。

Try this code snippet here

<?php
ini_set('display_errors', 1);
$days=30;
$object = new DateTime("25-04-2017 09:13:13");//giving the date from which we want to subtract.
$object->sub(new DateInterval("P".$days."D"));//passing the interval which we want to subtract
echo $object->format("d-m-Y H:i:s");

我想你想将日期字段字符串更改为日期

STR_TO_DATE(date_submitted, '%Y-%m-%d')

$limit_date = date('Y-m-d', strtotime('-30 days'));

$this->db->where('STR_TO_DATE(date_submitted, '%Y-%m-%d') >', $limit_date);