【PHP】 CHECKDATE関数の使い方(日付が正しいか調べる)
php3~ で使用できます。
CHECKDATE関数 : 書式
CHECKDATE ( 月, 日, 年 )戻り値:True または False
CHECKDATE関数は正しい日付か調べた結果を返します。
指定した日付が正しく、実在する日付であればTrueを返すことを活かして、閏年であるか調べることもできます。
CHECKDATE関数 : 使用例
- 指定した日付の整合性チェック$date = '2020-02-30';
list($Y, $m, $d) = explode('-', $date);
if checkdate($m, $d, $Y) {
echo "実在する日付です。";
}else{
echo "実在しない日付です。"; →出力される
}
<解説>
最も基本的な日付の妥当性チェックです。2/30 はあり得ない日付であるため checkdate関数は、False を返します。 - 指定した年が閏年か調べる// 閏年か調べる関数
Function isLeapYear($yyyy){
return checkdate(2, 29, $yyyy)
}
// 2020年を指定
if (isLeapYear(2020)){
echo "閏年です"; →出力される
}
<解説>
指定した年の 2/29 が実在するかどうかを「isLeapYear」関数のなかの、checkdate関数で調べることで、閏年か調べることができます。 - 指定年月の有効な日付を取得する$yyyy = 2020;
$mm = 4;
$dd = 1;
while (checkdate($mm, $dd, $yyyy)) {
echo $dd; →「1」~「30」までを出力
$dd += 1;
}<解説>
checkdate関数の戻り値がFalseになるまで処理を続けるという使い方で、指定年月の1日から末日までの有効な日付を取得することができます。
CHECKDATE関数 : 補足-STRPTIME関数について
strptime関数は、日付形式かどうかのチェックをします。
strptime関数は、月は1~12、日は1~31、年は1900以降、の範囲であるかのチェックが可能です。
よって、1月32日や13月1日といったチェックは可能ですが、2月30日や閏年などの日付の有効性はチェックできません。
関連リンク
PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。