【PHP】文字列が、正しい日付フォーマットかどうか判定する。
PHPで、与えられた文字列が正しい日付フォーマットかどうか確認する方法はいろいろあるけれど、なかなか良いやり方を教えてもらった。正規表現によるチェックは必要なし。日付として正しい範囲かどうか('13月' だとか '2月30日' といった、不正な日付が指定されていないかどうか)も一撃で判別できます。シンプル。
以下のような関数を用意します。
function is_correct_date( $date , $format ){ return $date === date( $format , strtotime($date) ); }
例えば、文字列が Y-m-d 形式の日付文字列であるかどうかを調べるには、上記の関数を以下のように使えばよろしい。
$testDate = '2024-09-19'; $format = 'Y-m-d' ; if( is_correct_date( $testDate , $format ) ){ // 正しい日付の場合の処理 }else{ // 違う場合の処理 }
この例の場合は、もちろん true が返ってきます。
一方、例えば
- $testDate = '2024/09/19' (フォーマットが指定した形式と異なる)
- $testDate = '2024-9-19' (同上)
- $testDate = '2024-13-19' (ありえない日付)
…などの場合は、正しく false が返ってきます。
これは賢いやりかた。素晴らしい。
コメント