日期晚于

时间:2017-04-25 08:37:25

标签: php mysql codeigniter-2 expressionengine

我将日期存储为'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'。

5 个答案:

答案 0 :(得分:1)

试试这个:

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

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

答案 1 :(得分:1)

我认为您希望将日期字段字符串更改为日期

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);

答案 2 :(得分:0)

我认为如果您将查询中的date_submitted转换为DATE,如果您不想弄乱小时:分钟:秒

,那会更好

示例:

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

答案 3 :(得分:0)

尝试:

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

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

答案 4 :(得分:0)

在此代码中,我们使用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");