登录  /  注册

PHP函数运用之计算截止某年某月某日共有多少天

青灯夜游
发布: 2021-08-19 17:23:54
原创
2506人浏览过

在之前的文章《怎么通过php实现给定年月日计算总天数》中,我们介绍了一种给定年月日计算总天数的方法。这次我们来简化一下方法,带大家了解一下借助strtotime()函数怎么计算总天数。

本文的主题是:给定一个年月日,计算截止这一天一共有多少天。

这要怎么计算?没有思路是不是,我们换个方向,简化一下,不就是求 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} 天<br>";
}
登录后复制

测试一下:计算截止2000-3-5的总天数(因为2000年是闰年,所以31+29+5=65)

GetDays(2000,3,5);
登录后复制

输出结果为:

1.png

OK,总天数是正确的!利用GetDays($year,$month,$day)函数,我们还可以计算一年的总天数

GetDays(2000,12,31);
GetDays(2021,12,31);
登录后复制

输出结果为:

6.png

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

以上就是PHP函数运用之计算截止某年某月某日共有多少天的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号