function validateDate( $date )
{
echo $date;
//2012-08-24 20:30:00
if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
{
return true;
}
else
{
return false;
}
}
これは常にfalseを返します。正規表現を作成するために唯一のツールを使用しましたが、そこでは正常に機能していました。正規表現に「/」を追加すると、問題が発生しました。どういうわけかPHPはこれらを必要としているようですが、私には理由がわかりません。また、なぜ正規表現が壊れているのかわかりません。
sthに対してTRUEを返す必要があります。「2012-08-2420:30:00」のように、「asdf2012-08-24 20:30:00 asdf」の場合はFALSE、または私の正規表現に従わないものはすべて
前もって感謝します!
-----------------------編集すべての回答ありがとうございます!
一部のユーザーが指摘したように、私の関数はサンプル日付「2012-08-2420:30:00」に対してtrueを返します。ただし、これは、$ date ='2012-08-2420:30:00'を手動で設定した場合にのみ行われます。まったく同じ文字列を使用してコードの他の場所で関数を呼び出すと、falseが返されます。誰かが理由を知っていますか?
-----------------------編集2
時間を無駄にしてすみません。実際、文字列に追加されたのは空白でした。関数を呼び出す前に日付にtrim()を使用すると、正しい結果が得られます。
みんな、ありがとう!