【PHP】お手軽に日付チェックがしたい
※説明文と、日付チェックプログラムを一部変更しました。(2015年8月22日更新)
とりあえず、日付の形式だけあっているのかチェックしたいな~と思い、
下記の関数を作ってみました。
日付チェックプログラム
<?php function is_fix_date( $date, $format="Y-m-d H:i:s" ) { $tempDate = date( "Y/m/d/H/i/s", strtotime($date) ); $aryDate = explode( "/", $tempDate ); if ( mktime( $aryDate[3], $aryDate[4], $aryDate[5], $aryDate[1], $aryDate[2], $aryDate[0] ) == FALSE || !checkdate($aryDate[2], $aryDate[3], $aryDate[1]) ) { $fixedDate = NULL; } else { $fixedDate = date( $format, strtotime($date) ); } return $fixedDate; } ?>
今回使う関数はこちら。
「mktime」と「checkdate」で日付チェックを行い、取得できなかった場合「NULL」を返すようにしてみました。
「mktime」のチェックだけだと、試しに「2015-04-31」と値を入れると「2015-05-01」と繰り越しされてしまうからです。
エラーなのか判定できないため、「checkdate」も追加しました。