php根据年月得到最大的天数<?php
function isLeapYear($yearStr){
/** 闰年计算方法:
1.普通年能整除4且不能整除100的为闰年(如2004年就是闰年,1900年不是闰年)
2.世纪年能被400整除的是闰年(如2000是闰年,1900不是闰年)
* */
$year = intval($yearStr);
$isLeap = false;
$isCenturyYear = ($year%100 ==0) ? true:false;
if($isCenturyYear){
if($year%400 ==0){
$isLeap = true;
}
}else{
if($year%4 ==0 && $year%100 !=0){
$isLeap = true;
}
}
return $isLeap;
}
function getMaxDays($dateStr){
$oneMonthArr = array(1,3,5,7,8,10,12);
$twoMonthArr = array(4,6,9,11);
$specailMonth = 2;
$yearStr = substr($dateStr,0,4);
$mothStr = substr($dateStr,-2);
$intMonth = intval($mothStr);
$maxDays =0;
$isleap = isLeapYear($yearStr);//判断年份是否为闰年
$day31Flag = in_array($intMonth,$oneMonthArr);
$day30Flag = in_array($intMonth,$twoMonthArr);
$specailFlag = ($intMonth ==$specailMonth)?true:false;
if($isleap){
if($day31Flag){
$maxDays =31;
}else if($day30Flag){
$maxDays =30;
}else if($specailFlag){
$maxDays =29;
}
}else{
if($day31Flag){
$maxDays =31;
}else if($day30Flag){
$maxDays =30;
}else if($specailFlag){
$maxDays =28;
}
}
return $maxDays;
}
$min = '201104';
echo getMaxDays($min);