怎么通过PHP判断指定月份共有几天
OK,大月和小月的判断还是很简单的,就剩下一个2月了,计算2月的天数,首先需要判断该年是不是闰年。我们可以使用下面一个函数来实现:(具体可以阅读文章《PHP如何输出20世纪的所有闰年》)
function IsLeapYear($year){
return ($year % 400 == 0 || $year % 4 == 0 && $year % 100 != 0);
}
如果给定年份是闰年则会返回true或1,如果不是闰年(是平年)则返回false或0。
然后在switch case语句中调用IsLeapYear($year)函数来进行判断:
case 2: echo IsLeapYear($year)? "$month 月共有29天" : "$month 月共有28天";break;
三元运算符
表达式1?表达式2:表达式3表示:如果条件“表达式1”成立,则执行语句“表达式2”,否则执行“表达式3”。
我们还可以加一个default分支,用来在用户输入除1~12月份的数时,进行提醒:
default:echo '输入错误,请输入1-12之间的数';break;
好了,将上面的代码封装为一个功能函数:
function IsLeapYear($year){
return ($year % 400 == 0 || $year % 4 == 0 && $year % 100 != 0);
}
function GetMaxDay($year,$month)
{
switch($month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
echo "$year 年 $month 月共有31天
";break;
case 4:
case 6:
case 9:
case 11:
echo "$year 年 $month 月共有30天
";break;
case 2:
echo IsLeapYear($year)? "$year 年 $month 月共有29天
" : "$year 年 $month 月共有28天
";break;
default:echo '输入错误,请输入1-12之间的数
';break;
}
}
调用GetMaxDay($year,$month)函数:
GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4);
可以看出,因为2000年是闰年,所以2月共有29天;2001年是平年,所以2月共有29天。而3月是大月,所以有31天;4月是小月,所以有30天。
以上就是怎么通过PHP判断指定月份共有几天的详细内容,更多请关注毛票票其它相关文章!