加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何显示即将到来的生日?

发布时间:2020-12-13 17:30:12 所属栏目:PHP教程 来源:网络整理
导读:我知道我不是第一个询问如何展示即将到来的生日的人.但不幸的是,所有其他答案并没有帮助我找到如何做到这一点. 我有一个具有以下结构的数据库: Id - Birthday1 9/14/19962 8/27/1990-- -- 如您所见,在生日字段中存储了出生日期.我想展示五个即将到来的生日(
我知道我不是第一个询问如何展示即将到来的生日的人.但不幸的是,所有其他答案并没有帮助我找到如何做到这一点.

我有一个具有以下结构的数据库:

Id    -    Birthday
1          9/14/1996
2          8/27/1990
--         --

如您所见,在生日字段中存储了出生日期.我想展示五个即将到来的生日(包括今天的生日).

但是我该怎么做呢?我试过这个,但它不起作用:

$query="SELECT Id 
    FROM participants
    WHERE DATE_ADD(STR_TO_DATE(birthday,%n/%j/%Y),INTERVAL YEAR(CURDATE())-YEAR(STR_TO_DATE(birthday,%n/%j/%Y)) YEAR)";

谢谢您的帮助!

解决方法

这个问题的关键是订购东西,而不是在哪里使用.这可以防止在年底出现问题.

因此,逻辑是将MM-DD生日的所有内容放在当前日期之前或之后,然后是生日的其余部分,按日期顺序排列:

select p.*
from participants
order by (case when date_format(STR_TO_DATE(birthday,'%m-%d') >= date_format(now(),'%m-%d')
               then 0 else 1
          end),date_format(STR_TO_DATE(birthday,'%m-%d')
limit 5;

编辑:

如果你需要转换生日:

select p.*
from participants
order by (case when date_format(birthdate,date_format(birthdate,'%m-%d')
limit 5;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读