PHP での所定の形式による日付文字列の検証
正規表現を使用して日付文字列を検証する現在のアプローチでは、常に正確な結果が得られるとは限りません。この制限に対処するために、この記事では、PHP の DateTime クラスを使用した優れた方法を紹介します。
DateTime::createFromFormat() の使用
PHP の DateTime::createFromFormat() 関数は、次のことを提供します。特定の形式で日付文字列を検証するための包括的なソリューション。入力文字列と目的の形式をこの関数に渡すことにより、日付を表す DateTime オブジェクトを取得できます。
function validateDate($date, $format = 'Y-m-d') { $d = DateTime::createFromFormat($format, $date); // The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue. return $d && strtolower($d->format($format)) === strtolower($date); }
その他の考慮事項
validateDate() 関数精度を確保するために次の基準を採用しています:
テスト ケースとデモ
次のテストこの例では、 validateDate() の多用途性を示しています。 function:
var_dump(validateDate('2013-13-01')); // false var_dump(validateDate('20132-13-01')); // false var_dump(validateDate('2013-11-32')); // false var_dump(validateDate('2012-2-25')); // false var_dump(validateDate('2013-12-01')); // true var_dump(validateDate('1970-12-01')); // true var_dump(validateDate('2012-02-29')); // true var_dump(validateDate('2012', 'Y')); // true var_dump(validateDate('12012', 'Y')); // false var_dump(validateDate('2013 DEC 1', 'Y M j')); // true
提供されたリンクにアクセスしてデモを試してください。
結論として、DateTime::createFromFormat() は、PHP で日付文字列を検証するための堅牢な方法を提供し、精度と柔軟性を保証します。コードに含めてください。
以上がPHP で特定の形式の日付文字列を確実に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。