if(preg_match('/^[0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4}$/', '10-30-2013')){
echo 'true';
}
else {
echo 'false';
}
これは私に真実を与えません。私は間違っていると思いますregex
。これを修正する方法を教えてくださいregex
これには正規表現をまったく使用しないことをお勧めします-正規表現を使用した日付の検証は、特定の月の日数が変動する可能性があるため、正しく行うのが驚くほど難しいことです.
DateTime
単純に PHP のクラスを使用して、実際に日付オブジェクトに解析する方がはるかに優れています。これにより、検証も行われます。指定された形式を満たさない場合、解析されません。
$dateObj = DateTime::CreateFromFormat('m-d-Y',$inputString);
については、PHP マニュアル ページを参照してくださいCreateFromFormat()
。