-3
 if(preg_match('/^[0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4}$/', '10-30-2013')){
   echo 'true';
}
else {
   echo 'false';
}

これは私に真実を与えません。私は間違っていると思いますregex。これを修正する方法を教えてくださいregex

4

3 に答える 3

2

これには正規表現をまったく使用しないことをお勧めします-正規表現を使用した日付の検証は、特定の月の日数が変動する可能性があるため、正しく行うのが驚くほど難しいことです.

DateTime単純に PHP のクラスを使用して、実際に日付オブジェクトに解析する方がはるかに優れています。これにより、検証も行われます。指定された形式を満たさない場合、解析されません。

$dateObj = DateTime::CreateFromFormat('m-d-Y',$inputString);

については、PHP マニュアル ページを参照してくださいCreateFromFormat()

于 2013-10-22T11:09:05.120 に答える