【PHP】 CHECKDATE関数の使い方(日付が正しいか調べる)

アイキャッチ画像php_checkdate PHP
PHP
この記事は約3分で読めます。
Recommended Articles

【PHP】 CHECKDATE関数の使い方(日付が正しいか調べる)

php3~ で使用できます。

CHECKDATE関数 : 書式

CHECKDATE ( 月, 日, 年 )

戻り値:True または False

 CHECKDATE関数は正しい日付か調べた結果を返します。
3つの引数の順番が「月、日、年」であることに注意しましょう。
指定した日付が正しく、実在する日付であれば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プログラム作成時にご活用下さい。
Recommended Articles