3

日付として保存する必要がある文字列を検証したい。この のフォームでユーザーに日付を指定してもらいますformat ('d-m-Y)。この関数を使用して、有効な日付が指定されたかどうかを確認しています。

function isDateValid($birthdate)
{
  $date = date('Y-m-d', $birthdate);        

  $stamp = strtotime(str_replace('/', '-', $date), $date);

  if (!is_numeric($stamp))
     return FALSE;

  //checkdate(month, day, year)
  if ( checkdate(date('n', $stamp), date('d', $stamp), date('Y', $stamp)) )
  {
     return TRUE;
  }
  return FALSE;
} 

これは、この形式の dmy のすべてのエントリで正常に機能します。ただし、このような形式が d/m/Y に指定されている場合でも true が返されますが、日付はこの m/d/Y のようにデータベースに保存されます。

この形式「d/m/y」のエントリをデータベースに保存できないようにするにはどうすればよいですか。

前もって感謝します

解決策を見つけた

わかりました、解決策を見つけたと思います

if(!preg_match('/^(\d\d?)-(\d\d?)-(\d\d\d\d)$/', $birthdate, $matches))
{
  return false;
}
return checkdate($matches[2], $matches[1], $matches[3]);

正しいパターンが指定されたかどうかを確認し、その後、有効な日付かどうかを確認します。これは私にとってはうまくいくので、ありがとう!!

4

1 に答える 1

0

次のような正規表現パターンを使用できます。*\d{4}-\d{2}-\d{2}*形式を確認するには

于 2012-05-03T12:44:16.613 に答える