パターンが 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 サイトの他の関連記事を参照してください。