ホームページ > バックエンド開発 > PHPチュートリアル > 私の正規表現が PHP の ISO 日付と一致しないのはなぜですか?

私の正規表現が PHP の ISO 日付と一致しないのはなぜですか?

Patricia Arquette
リリース: 2024-12-09 01:00:11
オリジナル
637 人が閲覧しました

Why Isn't My Regex Matching ISO Dates in PHP?

パターンが ISO スタイルの日付と一致しない: なぜですか?

正規表現を使用して ISO スタイルの日付を検証しようとすると、パターンが正しく一致しないという問題が発生する可能性があります。これは多くの場合、PHP で必要な正規表現に「/」文字が存在することが原因です。

問題

この問題は、正規表現を使用するときに発生します。 「YYYY-MM-DD HH:MM:SS」形式の日付と一致する式。正規表現に「/」文字が存在する場合、PHP は「/」文字が '' を使用してエスケープされることを期待しているため、エラーをスローします。

解決策 - DateTime クラスの使用

複雑な正規表現を使用する代わりに、PHP で DateTime クラスの使用を検討してください。このクラスは、日付を検証するためのシンプルかつ堅牢な方法を提供します。次のコードは、日付検証に DateTime クラスを使用する方法を示しています。

function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}
ログイン後にコピー

期待される形式を指定することで、DateTime クラスは日付を正確に検証し、信頼できる結果を返すことができます。

結論

PHP での日付検証には、安全な DateTime クラスを使用することをお勧めします。日付と時刻を操作するための便利で拡張可能なメソッドです。

以上が私の正規表現が PHP の ISO 日付と一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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