ホームページ >バックエンド開発 >PHPの問題 >PHP 関数を使用して、特定の年および月の最大日数を計算する方法

PHP 関数を使用して、特定の年および月の最大日数を計算する方法

青灯夜游
青灯夜游オリジナル
2021-08-16 14:42:462504ブラウズ

前回の記事「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 タイムスタンプ## の日付と時刻である必要があります。 # format, we need to 文字列型 time "2000-2" は Unix タイムスタンプ形式に解析されます。

これには、英語テキストの日付または時刻の記述を解析して Unix タイムスタンプに変換できる strtotime() 関数を使用する必要があります。

したがって、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日あります。わかりました!出力は正しいです。

これを関数関数として記述します。

<?php
function GetMaxDay($year,$month){
	$time = strtotime("{$year}-{$month}"); //取得一个日期的 Unix 时间戳;
	$date=date("t",$time);
	echo "$year 年 $month 月共有 $date 天<br>";
}
?>

Call

GetMaxDay($year,$month)特定の年と月の最大日数を取得します

GetMaxDay(1996,2);
GetMaxDay(2000,2);
GetMaxDay(2001,2);
GetMaxDay(2001,3);
GetMaxDay(2001,4);

出力結果は次のとおりです:

PHP 関数を使用して、特定の年および月の最大日数を計算する方法

実際、日付を解析して日付の UNIX タイムスタンプを返すことができるのは、PHP の strtotime() 関数だけではありません。 )機能も使えます。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。