PG WORKS

PHPやLinux(サーバー)などのノウハウや、便利なツールを紹介していきます。

【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」も追加しました。

あとがきてきなもの

毎週木曜日と休日は、運動してるから書くのが遅くなってしまった。。。