按生日搜索會員

生日字段類型 datetime,能夠用mysql mysql

DATE_FORMAT()

函數直接查詢。sql

本日生日:框架

$condition['_string']='DATE_FORMAT(birth,"%m-%d")="'.date('m-d',time()).'"';

本週生日:函數

需計算出本週的頭一天,最後一天,後來發現,用between方法在跨年的時候會出問題。改用in方法。get

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.')';

本月生日:string

$condition['_string']='DATE_FORMAT(birth,"%m")="'.date('m',time()).'"';

以上爲tp3.2寫法,其餘框架本身修改。it

相關文章
相關標籤/搜索