按生日搜索会员(几月几日)
生日字段类型 datetime,可以用mysql
DATE_FORMAT()
函数直接查询。
本日生日:
$condition['_string']='DATE_FORMAT(birth,"%m-%d")="'.date('m-d',time()).'"';
本周生日:
需计算出本周的头一天,最后一天,后来发现,用between方法在跨年的时候会出问题。改用in方法。
function get_week(){
//$sdefaultDate = date("Y-m-d");
$sdefaultDate = date("Y-m-d");
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
$first=1;
//获取当前周的第几天 周日是 0 周一到周六是 1 - 6
$w=date('w',strtotime($sdefaultDate));
//获取本周开始日期,如果$w是0,则表示周日,减去 6 天
$week_start=date('Y-m-d',strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'));
//本周结束日期
$week=array();
for($i=0;$i<7;$i++){
if($i>0){
$week[$i]=date('Y-m-d',strtotime("$week_start +$i days"));
}else{
$week[$i]=$week_start;
}
$week_date[$i]='"'.substr($week[$i],5,10).'"';
}
return $week_date;
}
$week=get_week();
$week_str=implode(',',$week);
$condition['_string']='DATE_FORMAT(birth,"%m-%d") IN ('.$week_str.')';
本月生日:
$condition['_string']='DATE_FORMAT(birth,"%m")="'.date('m',time()).'"';
以上为tp3.2写法,其他框架自己修改。