2017-09-04 6 views
-1

私は正規表現に新たなんだと私は例えば、日付にパターンを策定する方法を理解する問題を抱えている(2011年8月9日)正規表現パターン(例:2011年8月9日)

+2

これまでに何を試みましたか? – campovski

+1

正規表現を使用しないでください。PHPの 'strtotime'または' DateTime'を使用してください。 –

+0

@BjörnTantauDateTimeを使用して、かなりうまくいきました。ありがとう! – Steven

答えて

1

正規表現です日付検証には最適ではありません。 PHPの組み込み関数を使用してください。

あなたは、このようにそれを行うことができます。

function validateDate($date, $format = 'Y-m-d H:i:s') 
{ 
    $d = DateTime::createFromFormat($format, $date); 
    return $d && $d->format($format) == $date; 
} 

機能は、このanswerまたはphp.net

からコピーされた、このようにそれを使用します。

var_dump(validateDate('August 9, 2011', 'F j, Y')); # true 

さまざまな渡すことができます日付形式は次のとおりです。

var_dump(validateDate('2012-02-28', 'Y-m-d')); # true 
var_dump(validateDate('28/02/2012', 'd/m/Y')); # true 
var_dump(validateDate('30/02/2012', 'd/m/Y')); # false 
var_dump(validateDate('14:50', 'H:i')); # true 
var_dump(validateDate('14:77', 'H:i')); # false 
+0

ありがとう! DateTime形式で試してみましたが、うまくいきました。 – Steven