PHP如何利用函數來計算給定年月的最大天數

青灯夜游
發布: 2023-03-12 06:58:02
原創
2413 人瀏覽過

在上一篇文章《怎麼透過PHP判斷指定月份共有幾天》中,我們介紹了使用switch case語句分情況取得某年某月最大天數的方法;在switch case語句中,對於2月,還需要先判斷該年是不是閏年,才可獲得最大天數,這有點麻煩!

那麼如何簡潔高效的計算給定月份共有幾天,取得某年、某月的最大天數呢?其實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>";
?>
登入後複製

看看輸出結果:

PHP如何利用函數來計算給定年月的最大天數

#錯誤且輸出的最大天數不對,這是為什麼?回去看看上文,可以發現:

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>";
?>
登入後複製

我們看看輸出結果:

PHP如何利用函數來計算給定年月的最大天數

因為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如何利用函數來計算給定年月的最大天數

其實,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);
?>
登入後複製

輸出結果為:

PHP如何利用函數來計算給定年月的最大天數

可以看出:mktime(20,20,20,$month,1,$year)函數需要指定6個參數,分別為小時、分鐘、秒鐘、月份、天數、年份。其中小時、分鐘、秒鐘可以隨便設置,月份和年份就是我們給定的$month$year,而天數就可設置為1(只要值不超過28就行)。

好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學

#

以上是PHP如何利用函數來計算給定年月的最大天數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!