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

简介: 在之前的文章《怎么通过PHP实现给定年月日计算总天数》中,我们介绍了一种给定年月日计算总天数的方法。这次我们来简化一下方法,带大家了解一下借助strtotime()函数怎么计算总天数。本文的主题是:给定一个年月日,计算截止这一天一共有多少天。这要怎么计算?没有思路是不是,我们换个方向,简化一下,不就是求 x年1月1日——x年x月x日之间隔了多少天,也就是求两个日期的时间差。那么怎么求时间差呢?我们需要先将两个日期:x年1月1日 和 x年x月x日 转换为 时间戳

在之前的文章《怎么通过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秒;换算一下246060=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函数运用之计算截止某年某月某日共有多少天的详细内容,更多请关注富贵论坛www.fgba.net其它相关文章!

目录
相关文章
|
1月前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
1月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
22天前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
27 1
|
1月前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
1月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
2月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
33 2
|
2月前
|
JavaScript 前端开发 PHP
|
2月前
|
监控 数据库连接 PHP
php中register_shutdown_function函数用法详解
通过 `register_shutdown_function`,PHP开发者可以对脚本的终止进行更精细化的处理,这个函数让开发者能在脚本的生命周期结束时有机会执行最后的操作,无论脚本是正常结束还是发生错误。由于它的高度实用性和灵活性,`register_shutdown_function`是PHP开发中不可或缺的工具之一。
55 0
|
3月前
|
SQL 关系型数据库 MySQL
php所有函数总结
以上只是PHP中函数的一部分,实际上PHP提供了丰富的内置函数,能够处理各种复杂的任务。
24 2
|
3月前
|
存储 Serverless PHP