按生日搜索会员(几月几日)

作者: 沁雪澜 分类: php 发布时间: 2018-01-22 13:41

生日字段类型 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写法,其他框架自己修改。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!