« 2010年1月 | メイン | 2010年3月 »

2010年2月

2010年2月 4日 (木)

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

2010年3月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

My Favorite Songs

  • My foolish heart
    Bill Evans Trio: Waltz for Deby (★★★★★)