2015-05-14 123 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; 
}