PR

[CakePHP] 独自バリデーション-日付期間

以前バリデーションルールを1つやってみた。

pc.casey.jp » CakePHP の独自バリデーションルールにハマる :
http://pc.casey.jp/archives/2266

今回は日付期間。無駄の多い美しくないコードです。

例えば売上入力などで、未来に売り上げることは許可しない、過去2箇月以上前のデータは改変不能にする、場合に使えそうなもの。
#用意さているbetweenとかでもできそうな気がするけど。。。
# if(!$max or $max=0){ これは empty(–)でもいいような気がするけど、作っちまったからいっか。動いてるし。

スポンサードリンク

 function checkDate($data, $name, $input, $max = 0, $min = 60){
  // init
  $day = 86400;
  $date_now  = date("Ymd");

  if(!$max or $max=0){
   $date_max = $date_now;
  }else{
   $date_max = date("Ymd", strtotime($date_now) + ($day * $max));
  }
  $date_min = date("Ymd", strtotime($date_now) - ($day * $min));
  $date_input= date("Ymd", strtotime($data[$name]));

  // check
  if($date_max < $date_input) return false;
  if($date_min > $date_input) return false;
  return true;
 }

コメント