首页  >  文章  >  后端开发  >  怎么通过PHP实现给定年月日计算总天数

怎么通过PHP实现给定年月日计算总天数

青灯夜游
青灯夜游原创
2021-08-17 18:29:063430浏览

在之前的文章《PHP数组学习之使用冒泡算法对元素进行升序排序!》中,我们介绍了使用冒泡算法对数组元素进行升序排序的方法。这次我们来看看使用PHP如何实现给定年月日计算是这一年的第几,感兴趣的朋友可以学习了解一下~

本文的主题是通过PHP实现:输入某年某月某日(例如2000年3月5日),计算至此一共有多少天(也可是判断这一天是这一年的第几天)。

实现思想分析:

想要计算截止3月5这一天一共有多少天,我们可以将从1月1日—3月5日的所有天数都加在一起即可。

那么就需要分别求3月之前几个月(1月和2月)的最大天数,而求一个月的最大天数我们可以使用以下函数来实现这个功能【详细的介绍,可以阅读文章《PHP如何利用函数来计算给定年月的最大天数》】

function GetMaxDay($year,$month){
	$time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳;
	$date=date("t",$time);
	return $date;
}

测试一下:输出2000年2月的最大天数

echo GetMaxDay(2000,2);

1.png

因为2000年是闰年,所以2月共有29天,OK可以。

然后就需要将这些最大天数相加起来,这就需要使用循环了(我使用for循环)。一年都是从1月开始的,所以初始条件为 $i=1 ;一直要相加到指定月(3月)之前,所以限制条件为 $i<$month

$sum=0;  
for($i=1;$i<$month;$i++){
	$sum += GetMaxDay($year,$i);
}

测试一下,计算2000年3月之前的所有天数(31+29=60),看看是不是60天:

3.png

OK,功能实现了!

最后将获取的天数和$sum和指定$month的指定日$day的天数相加即可。我们来看看完整代码:

输出结果:

4.png

好了,将求总天数的代码封装为一个功能函数:

 ";
}
?>

调用这个功能函数GetDays($year,$month,$day)

GetDays(2000,3,5);
GetDays(2001,3,5);
GetDays(2001,2,5);

我们来看看输出结果:

3.png

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

以上是怎么通过PHP实现给定年月日计算总天数的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn