这篇文章主要讲解了“PHP怎么利用函数来计算给定年月的最大天数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么利用函数来计算给定年月的最大天数”吧!
如何简洁高效的计算给定月份共有几天,获取某年、某月的最大天数呢?其实PHP内置的date() 函数就可以解决这个问题!
date() 函数可以将指定Unix 时间戳格式化为本地日期和时间,只需要设置输出格式为“t
”,即可返回给定月份中包含的天数。
我们来试试:
<?php header("Content-type:text/html;charset=utf-8"); $time="2000-2"; $date=date("t",$time); echo "$time 月共有 $date 天<br>"; ?>
看看输出结果:
报错且输出的最大天数不对,这是为什么呢?回去看看上文,可以发现:
date() 函数接受的$time
参数必须是一个Unix 时间戳格式的日期时间,我们需要将字符串类型的时间"2000-2"解析为 Unix 时间戳格式。
这就需要使用strtotime() 函数了,该函数可以将任何英文文本的日期或时间描述解析为 Unix 时间戳。
因此PHP程序可以写成:
<?php header("Content-type:text/html;charset=utf-8"); $i="2000-2"; $time=strtotime("$i"); //取得一个日期的 Unix 时间戳; $date=date("t",$time); echo "$i 月共有 $date 天<br>"; ?>
我们看看输出结果:
因为2000年是一个闰年,所以2月共有29天。OK!输出正确。
我们将其写成一个功能函数:
<?php function GetMaxDay($year,$month){ $time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳; $date=date("t",$time); echo "$year 年 $month 月共有 $date 天<br>"; } ?>
调用GetMaxDay($year,$month)
获取某年、某月的最大天数
GetMaxDay(1996,2); GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4);
输出结果为:
其实,PHP中不止strtotime() 函数可以解析日期,返回一个日期的 UNIX 时间戳;mktime() 函数也可以。
下面我们来改写一下GetMaxDay()函数,在里面利用mktime() 函数来取得一个日期的 Unix 时间戳
<?php header("Content-type:text/html;charset=utf-8"); function GetMaxDay($year,$month){ $time = mktime(20,20,20,$month,1,$year); //取得一个日期的 Unix 时间戳; $date=date("t",$time); echo "$year 年 $month 月共有 $date 天<br>"; } GetMaxDay(1996,2); GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4); ?>
输出结果为:
可以看出:mktime(20,20,20,$month,1,$year)
函数需要指定6个参数,分别为小时、分钟、秒钟、月份、天数、年份。其中小时、分钟、秒钟可以随便设置,月份和年份就是我们给定的$month
和$year
,而天数就可设置为1(只要值不超过28就行)。
感谢各位的阅读,以上就是“PHP怎么利用函数来计算给定年月的最大天数”的内容了,经过本文的学习后,相信大家对PHP怎么利用函数来计算给定年月的最大天数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。