PHP を使用して日付形式を検証するには、checkdate() 関数と正規表現を使用します。以下に、日付形式を検証するためのプロセスをいくつか紹介します。そして、最終的に最も簡単な方法を思いつきました。
1. 正規表現を使用して日付と時刻の形式を確認します
ereg、preg_matchなどのPHP関数を主に使用します。
とてもシンプルなものがあります
コードは次のとおりです | コードをコピー |
$dateTime=”2010-6-4 00:00:00″; if(preg_match("/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s",$dateTime)) { 「はい」をエコーします; }その他{ 「いいえ」をエコーします; } |
しかし、この規則性は数値を検証しただけで、境界値を検証したわけではないので、誰かがこの規則性を書きました
。コードは次のとおりです | コードをコピー |
正規表現 = “^((d{2}(([02468][048])|([13579][26]))[-/s]?(((0?[13578] |
これはまさに神の御業です。
そのため、時刻形式の正当性を確認するために正規表現を使用することを諦めなければなりませんでした。
2. 時刻文字列を逆アセンブルし、日付と時刻の形式を個別に確認します。
checkdateなどのPHP関数が主に使用されます。
この方法は非常に優れており、検証も正確ですが、コードを書くのが面倒です。checkdate($k[1],$k[2],$k[0])を使用する必要があります。 ) 日付、時刻を確認するには 1 つずつ分解して検査する必要があります。
実際には、上記の2つの方法を組み合わせて使用することができ、操作はさらに便利になります。
1. まず正規表現を使用して、「2011-11-07 12:30:55」の形式であるかどうかを確認します。
使う
コードは次のとおりです | コードをコピー |
preg_match("/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s",$dateTime) |
以上です
2. 次に、strtotime() 関数を使用して判断および検証し、日付文字列を渡すだけです。
strtotime() 関数は、デフォルトで、指定された日付と時刻の文字列に対応する UNIX タイムスタンプを返します。
strtotime() 関数の特徴の 1 つは、受信した日付文字列の形式が間違っている場合に false を返すことです。また、さまざまな日付形式をサポートしているため、非常に便利です。