PHPでstrptimeを使った日付のフォーマットチェック
日付+時刻形式のフォーマットチェックを簡単に行う方法
strptime関数では、フォーマットと値のチェックを行ってくれるのがよいところ。
以下、コマンドラインから実行するサンプル
最終的に年月日+時分秒で整形する。
<?PHP $format = '%Y-%m-%d %H:%M:%S'; if($argc < 2) $strdt = "2010-2-14 10:02:20"; else $strdt = $argv[1]; echo "$strdt\n"; $date = strptime($strdt, $format); print_r($date); echo "\r\n"; if($date == false){ print "illegal date time format\r\n"; }else{ printf("%4d%s%02d%s%02d%s", ($date['tm_year'] + 1900), "年", ($date['tm_mon'] + 1), "月", $date['tm_mday'], "日 "); printf("%02d%s%02d%s%02d%s", $date['tm_hour'], "時", $date['tm_min'], "分", $date['tm_sec'], "秒\r\n"); } ?> |
実行結果
$ php sample.php "2010-2-4 10:19:05" 2010-2-4 10:19:05 Array ( [tm_sec] => 5 [tm_min] => 19 [tm_hour] => 10 [tm_mday] => 4 [tm_mon] => 1 [tm_year] => 110 [tm_wday] => 4 [tm_yday] => 34 [unparsed] => ) 2010年02月04日 10時19分05秒 $ php strptime.php "2010-13-4 10:19:05" 2010-13-4 10:19:05 illegal date time format |