【问题标题】:CodeIgniter Query Builder - Get data with date within next 2 daysCodeIgniter 查询生成器 - 获取未来 2 天内日期的数据
【发布时间】:2016-08-22 23:39:47
【问题描述】:

背景:

用户可以创建预订。他们可以为所述预订设置“要求”日期和时间。这以日期时间格式进入数据库。

我有一个页面需要显示未来两天内即将到来的预订,而不是之后

问题:

我无法将数据限制在 2 天内。

目前我可以用它来检索所有即将到来的预订。

当前代码

    $this->db->select('*');
    $this->db->from('nh_bookings');

    $this->db->where('nh_bookings.booking_req_by_date_time > DATE_SUB(now(), INTERVAL 2 DAY)');

    $query = $this->db->get();
    return $query;

任何帮助将不胜感激!

【问题讨论】:

  • booking_req_by_date_time 数据类型?
  • where(... , '', false)

标签: php query-builder codeigniter-3


【解决方案1】:

你可能需要做这样的事情:

$this->db->where('nh_bookings.booking_req_by_date_time >=', date('Y-m-d H:i:s', strtotime($start_date." 00:00:00")));
$this->db->where('nh_bookings.booking_req_by_date_time <=', date('Y-m-d H:i:s', strtotime($end_date." 23:59:59")));

或者:

$this->db->where("nh_bookings.booking_req_by_date_time BETWEEN ".date('Y-m-d H:i:s', strtotime($start_date." 00:00:00"))." AND ". date('Y-m-d H:i:s', strtotime($end_date." 23:59:59")));

【讨论】:

  • 谢谢!用 2 个 WHERE 语句获取了您的初始答案,对其进行了一些修改,现在它就像一个魅力!将它们更改为: $this->db->where('nh_bookings.booking_req_by_date_time >=', date('Y-m-d H:i:s', $start_date)); $this->db->where('nh_bookings.booking_req_by_date_time
  • @TomPearce 很高兴它帮助了你!快乐编码! :)
【解决方案2】:
$this->db->where('nh_bookings.booking_req_by_date_time < DATE_ADD(now(), INTERVAL 2 DAY) AND nh_bookings.booking_req_by_date_time > NOW()');

从现在到接下来的两天检索项目。

还记得 where() 方法有第三个参数 $escape,默认为 TRUE。这个参数会导致Mysql函数转义,所以不能正常工作

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 1970-01-01
    • 2021-11-02
    • 2021-07-08
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多