1.判断是否为闰年的方法:
闰年的定义:
能被4整除的非世纪年(1900年虽能被4整除但因为是世纪年 故不是闰年)
能被400整除的世纪年(2000年可以被400整除 故是闰年)
能想到的普通算法如下:
if ((($i % 4 == 0) && ($i % 100 != 0)) || ($i % 400 == 0)) {
echo $i, '是闰年';
} else {
echo $i, '不是闰年';
}
第二种就是利用PHP自带的date函数判断
date的第一个参数可以给定如下我们需要的值:
t - 给定月份中包含的天数
L - 是否是闰年(如果是闰年则为 1,否则为 0)
结合strtotime函数或mktime函数将指定日期转为时间戳,
$time1 = strtotime('2017-02-01 18:00:00');
$time2 = mktime(18,0,0,2,01,2016);//2016-02-01 18:00:00
if(date('t',$time1)==29){
echo '根据2月的天数判断当前年份为闰年';
}else{
echo '根据2月的天数判断当前年份为平年';
}
echo '<br/>';
if(date('L',$time2)){
echo '当前年份为闰年';
}else{
echo '当前年份为平年';
}
2.计算到某年(X)为止的闰年数:
(int)X/4-(int)X/100+(int)X/400
2.1获得能被4整除的所有年份数(取整)
2.2减去能被100整除的世纪年份数(取整)
2.3加上能被400整除的世纪年份数(取整)
$time1 = 2000;
echo (int)$time1/4-(int)$time1/100+(int)$time1/400;//值为485