• 技术文章 >后端开发 >PHP问题

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

    青灯夜游青灯夜游2021-08-19 17:23:54原创411
    在之前的文章《怎么通过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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP 函数 时间差 总天数
    上一篇:PHP数组学习之怎么截取元素片段(两种方式) 下一篇:PHP函数运用之返回某个日期的前一天和后一天

    相关文章推荐

    • PHP日期时间运用六:检测一个日期是不是周末• PHP日期时间运用七:获取某个国家的日期和星期• PHP日期时间运用八:添加或减去特定日期的天数• PHP日期时间运用九:获取某年某周的开始和结束日期

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网