ホームページ > バックエンド開発 > PHPチュートリアル > PHP で特定の形式の日付文字列を確実に検証するにはどうすればよいですか?

PHP で特定の形式の日付文字列を確実に検証するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-20 16:20:14
オリジナル
991 人が閲覧しました

How Can I Reliably Validate Date Strings with Specific Formats in PHP?

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() 関数精度を確保するために次の基準を採用しています:

  • 元の文字列は DateTime に変換する必要があります
  • DateTime オブジェクトの書式設定された表現は、指定された文字列と正確に一致する必要があります。

テスト ケースとデモ

次のテストこの例では、 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート