公历闰年判定遵循的规律为:四年一闰,百年不闰,四百年再闰。
自然写法就如下:$year=2015;
if(($year%4 == 0 && $year%100 != 0) || ($year%400 == 0 )) {
echo "$year is run yerar.
";
}else {
echo "$year is ping year.
";
}
这是最简单的一种方法,其实还有复杂的,下面收集出来:
方法二:分两种
(1)、普通年能被4整除而不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)
(2)、世纪年能被400整除而不能被3200整除的为闰年。(如2000年是闰年,3200年不是闰年)
代码:$year=mt_rand(1900,2200);//从1900年到2200,可以自己改,也可以给一个定值。
if($year%100==0){//判断世纪年
if ($year%400==0&&$year%3200!=0){
echo "世纪年".$year."是闰年!";//世纪年里的闰年
}
else{echo "世纪年".$year."不是闰年!";}
}
else{//剩下的就是普通年了
if($year%4==0&&$year%100!=0){
echo "普通年".$year."是闰年!";//普通年里的闰年
}
else {echo "普通年".$year."不是闰年!";}
}
方法三:$year = 2008;//可以像上例一样用mt_rand随机取一个年,也可以随便赋值。
$time = mktime(20,20,20,4,20,$year);//取得一个日期的 Unix 时间戳;
if (date("L",$time)==1){ //格式化时间,并且判断是不是闰年,后面的等于一也可以省略;
echo $year."是闰年";
}else{
echo $year."不是闰年";
}
方法四:$year = 2000;
$time = mktime(20,20,20,2,1,$year);//取得一个日期的 Unix 时间戳;
if (date("t",$time)==29){ //格式化时间,并且判断2月是否是29天;
echo $year."是闰年";//是29天就输出时闰年;
}else{
echo $year."不是闰年";
}