preg_matchによる所定の書式の文字の確認
ソース
まだ十分ではないが、書式についてはチェックできる。ただし、2018/33/33とかにもマッチしてしまうので、
その部分は修正が必要。
<?php /** * preg_matchによる日付のチェック * 「2018/12/12 00:00:00」 * $patternで正規表現のパターンを設定 * 「^」、「$」は最初と最後を固定 * \d{4} 西暦の4文字 * ([/-]?) 次の月の区切りとして/もしくは-。ただしなくてもよい。 * \d{1,2} 月の1文字もしくは2文字。 * ([/-]?) 次の日の区切りとして/もしくは-。ただしなくてもよい。 * ¥d{1,2} 日の1文字もしくは2文字 * \s スペース * \d{2}:\d{2}:\d{2} 00:00:00にマッチ。上位の桁の場合も2文字でないとマッチしない。 */ $pattern="#^\d{4}([/-]?)\d{1,2}([/-]?)\d{1,2}\s\d{2}:\d{2}:\d{2}$#"; $str_time='2018/12/22 00:00:00'; if(preg_match($pattern,$str_time,$match)){ print $str_time."は正しい書式です。"."<br>"; }else{ print $str_time."は正しくない書式です。"."<br>"; }