这篇文章主要讲解了“PHP怎么计算一段时间内有多少天”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么计算一段时间内有多少天”吧!
创新互联公司专注于连城企业网站建设,自适应网站建设,商城开发。连城网站建设公司,为连城等地区提供建站服务。全流程按需网站开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
本文的主题是:给定一个年月日,计算截止这一天一共有多少天。
这要怎么计算?没有思路是不是,我们换个方向,简化一下,不就是求 x年1月1日——x年x月x日之间隔了多少天,也就是求两个日期的时间差。那么怎么求时间差呢?
我们需要先将两个日期:x年1月1日 和 x年x月x日 转换为 时间戳
$startdate = strtotime("{$year}-01-01"); $enddate = strtotime("{$year}-{$month}-{$day}");
然后将两个时间戳相减(结束时间 - 起始时间)
$diff_seconds = $enddate-$startdate;
这样就会得到两个日期的时间差,但此时还是以秒为单位计数的,不利于阅读。
因为一天有24小时,1小时有60分钟,1分钟有60秒;换算一下24*60*60=86400
,因此1天有86400秒。
将时间差$diff_seconds除以86400,在使用floor()向下舍入为最接近的整数
$time = floor(($diff_seconds)/86400);
此时获取到的是相差天数,不包括x月x日这一天,要再加1,才是截止某年某月某日的总天数。
我们来看看完整代码:
function GetDays($year,$month,$day){ $startdate = strtotime("{$year}-01-01"); $enddate = strtotime("{$year}-{$month}-{$day}"); $diff_seconds = $enddate-$startdate; $time = floor(($diff_seconds)/86400); $day = $time+1; echo "截止{$year}-{$month}-{$day} 共有 {$day} 天
"; }
测试一下:计算截止2000-3-5的总天数(因为2000年是闰年,所以31+29+5=65)
GetDays(2000,3,5);
输出结果为:
OK,总天数是正确的!利用GetDays($year,$month,$day)函数,我们还可以计算一年的总天数
GetDays(2000,12,31); GetDays(2021,12,31);
输出结果为:
感谢各位的阅读,以上就是“PHP怎么计算一段时间内有多少天”的内容了,经过本文的学习后,相信大家对PHP怎么计算一段时间内有多少天这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!