2015-05-14 120 views
1

我想讓顧客的生日從今天到今年月底。如何獲得從今天到今年月底的生日日期?

這是我的表

id dob   stid 
1 1960-05-12 1389 
2 1958-05-11 1389 
3 1970-05-14 1389 
4 1959-05-18 1389 

function getBirthdayDate($date) 
{ 
$dateqry='';  
if($date=='today') 
{ 
$dateqry=" AND MONTH(`dob`) = '".date("m")."' AND DAY(`dob`)='".date("d")."'"; 
} 
else if($date=='tomorrow') 
{ 
$dateqry=" AND MONTH(`dob`) = '".date("m")."' AND DAY(`dob`)='".date("d", strtotime("+1 day"))."'"; 
} 
else if($date=='month') 
{ 
$dateqry=" AND MONTH(`dob`) = '".date("m")."' AND DAY(`dob`)='".date("d")."' BETWEEN DAY(`dob`)='".date("t")."' "; 
} 
$sql="SELECT * FROM `customers` WHERE store_id='1389' $dateqry "; 
$result=dbQuery($sql); 
return $row=$result->num_rows; 
} 

我怎樣才能從今天到最後一天的這個月結束了嗎?

注意:在這裏,一年不應該採取,只有一個月和一天。例如,今天和本月之間的這個月和一天結束。

感謝

回答

1

我假定你有一些HTML您選擇是否顯示「今日」,「明天」或「本月」的生日的權限?

您對'今日'和'明天'的條件是正確的。

對於「月」,改變你的條件爲:

else if($date=='month') 
    { 
    $dateqry=" AND MONTH(`dob`) = '".date("m")."' AND DAY(`dob`) BETWEEN '".date("d")."' AND '".date("t")."' "; 
    } 

即使用BETWEEN子句今天的月份日期

+0

謝謝,這是正確的 – MGM

1

您可以直接在YYYY-MM-DD格式使用日期,MySQL的理解很好,所以

今天到這個月的月底

$last_date = date('Y-m-t'); 
$today = date("Y-m-d"); 

$dateqry = " AND `dob` >= '$today' AND `dob` <= '$last_date'"; 
+3

的日期和結束這幾個月的工作有31天,否則,使用'date('Ym-t')',這將在任何給定的月份中返回*正確*天數。 –

+0

用代碼編輯,謝謝指出! :) – Viral

0
function getBirthdayDate() 
{ 
$dateqry='';  
$today=date("Y-m-d"); 
$lastdate=date("Y-m-t", strtotime($today)); 

$dateqry=" AND `dob`>= '".$today."' AND `dob`<='".$lastdate."'"; 

$sql="SELECT * FROM `customers` WHERE store_id='1389' ".$dateqry." "; 
$result=dbQuery($sql); 
return $row=$result->num_rows; 
}