PHP:Codeigniter 在两个日期内获得即将到来的生日

Posted

技术标签:

【中文标题】PHP:Codeigniter 在两个日期内获得即将到来的生日【英文标题】:PHP: Codeigniter get upcoming birthdays within two dates 【发布时间】:2016-06-12 20:42:57 【问题描述】:

我有一张这样的员工表

id   name   dob
1    Vik    1990-01-12
2    Arm    1992-02-08
3    Loki   1992-02-19
4    Ram    1986-11-23
5    Suri   1996-03-02

今天是 2015-02-05,现在我想要那些生日在 2015-02-01 到 2015-02-28 之间的记录。意味着输出将是

2    Arm    1992-02-08
3    Loki   1992-02-19

我只熟悉Codeigniter,所以我的要求是请根据CI查询写下你的答案。

【问题讨论】:

到目前为止你的代码是什么? 【参考方案1】:
SELECT * FROM `employees` WHERE MONTH(dob) = 2 AND (DAY(dob) >= 1 AND DAY(dob) < 29);

Test.

【讨论】:

我在 sql 中尝试过,它正在工作,但我将如何在 CI 中使用它 它工作一个月。如果我们想要两个月的日期,将如何执行此代码? @mathew 你可以试试$this-&gt;db-&gt;query("SELECT * FROM employees WHERE MONTH(dob) = $monthVarFirst OR MONTH(dob) = $monthVarSecond;")【参考方案2】:

直接从数据库中提取信息可能会更好,这样您就不需要抓取所有记录并执行循环。

@Tpojka 示例的另一个替代方法是在使用 mysql 时使用 BETWEEN 函数:

SELECT * FROM `employees` WHERE dob BETWEEN $start_date AND $end_date;

要在 CodeIgniter 中使用它,您需要先进行数据库配置设置,然后才能执行以下操作:

$this->db->query('SELECT * FROM `employees` WHERE dob BETWEEN ? AND ?;', array($start_date, $end_date));

【讨论】:

以上是关于PHP:Codeigniter 在两个日期内获得即将到来的生日的主要内容,如果未能解决你的问题,请参考以下文章

无法在 codeigniter 中发布简单的表单日期

Codeigniter / PHP在一段时间后删除行

php/Codeigniter——如何通过排除时间来仅比较日期

在codeigniter中获取两个日期范围之间的数据

Codeigniter:验证两个日期字段

CodeIgniter:在每个库中加载模型或将模型从控制器内“传递”到库中