以前バリデーションルールを1つやってみた。
pc.casey.jp » CakePHP の独自バリデーションルールにハマる :
https://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; }
コメント