Cakephp PHP WEB開発

PHPで日付フォーマットと妥当性をチェックする

※本サイトはPR表記を含みます。

PHPでpreg_match()を使って日付のフォーマットを簡単にチェックすることができますが、同時に日付の妥当性をチェックする形にしてみます。

よくあるのは2月31日とかの日は存在しませんよね。そういう場合、checkdate()を使って妥当性をチェックします。

/**
 * 日付フォーマット検証
 *
 * @param string $value 日付フィールド入力値
 * @return bool
 */
private function isDate($value): bool
{
    if (preg_match("/^[0-9]{4}\/(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])$/", $value)) {
        [$y, $m, $d] = explode('/', $value);
        if (checkdate((int)$m, (int)$d, (int)$y)) {
            return true;
        }
    }

    return false;
}

ちな、日付チェック系の他記事はフォーマットと妥当性がひとまとめになったものが少ない感じなので、記事にしました。

 

-Cakephp, PHP, WEB開発
-,