生日判断

freescy2002 2004-04-13 08:24:28
用户注册生日1982-04-22
数据库里设计是date型的,如果我要在当前提前10天提示生日快到了从04-12开始,但是如何从数据库判断啊,因为里面还有1982啊,
...全文
47 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cokeyang 2004-04-14
存的时候用时间戳吧!
便于以后的运算!
回复
freescy2002 2004-04-14
我的意思是这样的
我的数据里有个timee,设为date型里面的记录有1982-04-15的数据记录
而今天是4-13日,
我做一个数据库查询,查出从今天开始10天内有过生日的人。
回复
52juanjuan 2004-04-14
学习,学习,不过我建议最好用unix时间形式,那样只要注意一点点就可以了,便于运算些
回复
xuzuning 2004-04-14
1、首先用to_days是不对的,to_days返回日期从0年的天数
2、
MONTH(date) 返回date的月份,范围1到12
DAYOFMONTH(date) 返回date的月份中日期,在1到31范围内
3、于是条件
MONTH(date)=MONTH(now()) and (DAYOFMONTH(date)-DAYOFMONTH(now()))<=10
4、php处理
date("md",strtotime(date))-date("md") <= 10
5、上面算法未包括跨月,请自行扩展
回复
freescy2002 2004-04-14
哎,这样就更加郁闷了,里面已有几千用户了,对了,unix时间形式,在存储只需要月日是如何写的
回复
ice_berg16 2004-04-13
你是什么意思?是想取出所有快过生日的用户,还是在用户登录时通知他快过生日了?
如果是第一种
select * from table where (to_days(time)-to_days(now()))<=10

如果是第二种,从数据库中取出该用户的生日资料保存在变量中,这里假设变量为$birth
$birth="1982-04-22";
$arr = explode('-', $birth);
$ustamp = mktime(0,0,0,$arr[1],$arr[2],$arr[0]);
$left_days = ($ustamp - time())/(60*60*24);
if ($left_days <= 10)
echo "你的生日还有".$left_days."天了";
回复
freescy2002 2004-04-13
curdate( )
不明白啊,为什么我执行的时候不会显示呢?
回复
hahawen 2004-04-13
SELECT *
FROM table
WHERE time
BETWEEN (curdate( ) - INTERVAL 10 DAY ) AND curdate( )
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告