怎么通过PHP实现给定年月日计算总天数
时间:2021-08-28
来源:互联网
今天PHP爱好者给大家带来怎么通过PHP实现给定年月日计算总天数的方法,在之前的文章《PHP数组学习之使用冒泡算法对元素进行升序排序!》中,我们介绍了使用冒泡算法对数组元素进行升序排序的方法。这次我们来看看使用PHP如何实现给定年月日计算是这一年的第几,感兴趣的朋友可以学习了解一下~希望对大家有所帮助。
本文的主题是通过PHP实现:输入某年某月某日(例如2000年3月5日),计算至此一共有多少天(也可是判断这一天是这一年的第几天)。
实现思想分析:
想要计算截止3月5这一天一共有多少天,我们可以将从1月1日—3月5日的所有天数都加在一起即可。
那么就需要分别求3月之前几个月(1月和2月)的最大天数,而求一个月的最大天数我们可以使用以下函数来实现这个功能
function GetMaxDay($year,$month){
$time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳;
$date=date("t",$time);
return $date;
}
测试一下:输出2000年2月的最大天数
echo GetMaxDay(2000,2);
因为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天:
OK,功能实现了!
最后将获取的天数和$sum
和指定$month
的指定日$day
的天数相加即可。我们来看看完整代码:
<?php
header("Content-type:text/html;charset=utf-8");
$year=2000;
$month=3;
$day=5;
//求一个月的最大天数
function GetMaxDay($year,$month){
$time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳;
$date=date("t",$time);
return $date;
}
//求总天数
//求之前几个月的天数
$sum=0;
for($i=1;$i<$month;$i++){
$sum += GetMaxDay($year,$i);
}
$sum = $sum + $day; //加上本月的天数,就是总天数
//求总天数
echo "截止 $year 年 $month 月 $day 日, 一共有 $sum 天 ";
?>
输出结果:
好了,将求总天数的代码封装为一个功能函数:
<?php
header("Content-type:text/html;charset=utf-8");
//求一个月的最大天数
function GetMaxDay($year,$month){
$time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳;
$date=date("t",$time);
return $date;
}
//求总天数
function GetDays($year,$month,$day){
//求之前几个月的天数
$sum=0;
for($i=1;$i<$month;$i++){
$sum += GetMaxDay($year,$i);
}
$sum = $sum + $day; //加上本月的天数,就是总天数
//求总天数
echo "截止 $year 年 $month 月 $day 日, 一共有 $sum 天<br> ";
}
?>
调用这个功能函数GetDays($year,$month,$day)
GetDays(2000,3,5);
GetDays(2001,3,5);
GetDays(2001,2,5);
我们来看看输出结果:
以上就是怎么通过PHP实现给定年月日计算总天数的详细内容,更多请关注php爱好者其它相关文章!
-
抹茶交易所 时间:2025-05-10
-
GQ币总量多少?GQ币发行量介绍 时间:2025-05-10
-
klarna是什么 时间:2025-05-10
-
GQ是什么币种?GQ币怎么样? 时间:2025-05-10
-
比特币减半时间2024 时间:2025-05-10
-
HMSTR币怎么买?HMSTR币买卖交易操作教程 时间:2025-05-10
今日更新
-
手把手教你使用CSS3制作一个简单页面的布局(代码详解)
阅读:18
-
html篇:网页中如何实现输入框效果(代码详解)
阅读:18
-
JS数组学习之如何在头部或尾部插入元素?
阅读:18
-
JS字符串学习之怎么统一所有字符的大小写
阅读:18
-
你知道怎么在PHP中创建可选参数吗?
阅读:18
-
怎么实现水印?浅析水印实现的几种方式
阅读:18
-
PHP函数运用之利用数组来输出文件的扩展名
阅读:18
-
有关ThinkAPI短信服务的详细介绍
阅读:18
-
教你怎么使用Vue实现动画效果(附代码)
阅读:18
-
PHP数组学习之比较数组元素,获取第一大和第二大值
阅读:18