以前バリデーションルールを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;
}


コメント