이전 글 "PHP를 통해 특정 달의 일수 구하는 방법"에서는 다음과 같은 조건에 따라 특정 연도 특정 달의 최대 일수를 구하는 스위치 케이스 문을 사용하는 방법을 소개했습니다. 상황; 2월의 경우 스위치 케이스 문에서 최대 일수를 얻으려면 해당 연도가 윤년인지 여부도 확인해야 하는데 이는 약간 번거로운 일입니다!
그렇다면 특정 달의 일수를 간단하고 효율적으로 계산하고 특정 연도 또는 월의 최대 일수를 구하는 방법은 무엇일까요? 실제로 PHP에 내장된 date() 함수를 사용하면 이 문제를 해결할 수 있습니다!
date() 함수는 지정된 Unix 타임스탬프를 현지 날짜 및 시간으로 형식화할 수 있습니다. 특정 달에 포함된 일 수를 반환하려면 출력 형식을 "t
"로 설정하기만 하면 됩니다. 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
rrreee출력을 살펴보세요:
$time
매개변수는 Unix 타임스탬프형식의 날짜 및 시간이어야 합니다. >. "2000-2" 유형의 문자열 Time을 Unix 타임스탬프 형식으로 변환해야 합니다. 🎜🎜이를 위해서는 영어 텍스트 날짜 또는 시간 설명을 Unix 타임스탬프로 구문 분석할 수 있는 strtotime() 함수를 사용해야 합니다. 🎜🎜그래서 PHP 프로그램은 다음과 같이 작성할 수 있습니다: 🎜rrreee🎜출력을 살펴보겠습니다: 🎜🎜🎜🎜2000년은 윤년이므로 2월은 29일까지 있습니다. 좋아요! 출력이 정확합니다. 🎜🎜함수 함수로 작성합니다: 🎜rrreee🎜GetMaxDay($year,$month)
를 호출하여 특정 연도 및 월의 최대 일수를 가져옵니다🎜rrreee🎜출력 결과는 다음과 같습니다. 🎜🎜🎜🎜In 사실, PHP() 함수에는 strtotime 이상의 기능이 있으며 날짜를 구문 분석하고 날짜의 UNIX 타임스탬프를 반환할 수 있습니다. mktime() 함수도 사용할 수 있습니다. 🎜🎜GetMaxDay() 함수를 다시 작성하고 mktime() 함수를 사용하여 날짜의 Unix 타임스탬프를 가져옵니다.mktime(20,20, 20, $month,1,$year)
함수는 시, 분, 초, 월, 일, 연도 등 6개의 매개변수를 지정해야 합니다. 시, 분, 초는 마음대로 설정할 수 있고, 월과 연도는 우리가 부여한 $month
와 $year
이며, 일 수는 다음과 같이 설정할 수 있습니다. 1(값이 28을 조금 넘지 않는 한) 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜위 내용은 PHP 함수를 사용하여 특정 연도 및 월의 최대 일수를 계산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!