PHP如何利用函数来计算给定年月的最大天数
在上一篇文章《怎么通过PHP判断指定月份共有几天》中,我们介绍了使用switch case语句分情况获取某年某月最大天数的方法;在switch case语句中,对于2月,还需要先判断该年是不是闰年,才可获取最大天数,这有点麻烦!
那么如何简洁高效的计算给定月份共有几天,获取某年、某月的最大天数呢?其实PHP内置的date() 函数就可以解决这个问题!
date() 函数可以将指定Unix 时间戳格式化为本地日期和时间,只需要设置输出格式为“t”,即可返回给定月份中包含的天数。
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
我们来试试:
<?php
header(“Content-type:text/html;charset=utf-8”);
$time=”2000-2″;
$date=date(“t”,$time);
echo “$time 月共有 $date 天
“;
?>
看看输出结果:
1.png
报错且输出的最大天数不对,这是为什么呢?回去看看上文,可以发现:
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 天
“;
?>
我们看看输出结果:
2.png
因为2000年是一个闰年,所以2月共有29天。OK!输出正确。
我们将其写成一个功能函数:
<?php
function GetMaxDay($year,$month){
$time = strtotime(“{$year}-{$month}”); //取得一个日期的 Unix 时间戳;
$date=date(“t”,$time);
echo “$year 年 $month 月共有 $date 天
“;
}
?>
调用GetMaxDay($year,$month)获取某年、某月的最大天数
GetMaxDay(1996,2);
GetMaxDay(2000,2);
GetMaxDay(2001,2);
GetMaxDay(2001,3);
GetMaxDay(2001,4);
输出结果为:
3.png
其实,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 天
“;
}
GetMaxDay(1996,2);
GetMaxDay(2000,2);
GetMaxDay(2001,2);
GetMaxDay(2001,3);
GetMaxDay(2001,4);
?>
输出结果为:
4.png
可以看出:mktime(20,20,20,$month,1,$year)函数需要指定6个参数,分别为小时、分钟、秒钟、月份、天数、年份。其中小时、分钟、秒钟可以随便设置,月份和年份就是我们给定的$month和$year,而天数就可设置为1(只要值不超过28就行)。
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
以上就是PHP如何利用函数来计算给定年月的最大天数的详细内容,更多请关注富贵论坛http://www.fgba.net其它相关文章!
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023