タイトルの通りです。
行いたいバリデーションの内容は以下の3つです。
ユーザーが入力した日付が
・5,10,15,20,25日である
・月末である
・過去30日以内である(1ヶ月に変更になる可能性有)
自分なりに書いてみたコードはこんな感じです。
※$check['Date']には YYYY/mm/dd の形式でDBから取ってきたデータが入っています。
//30日以内 function DateChk30( $check ) { $today = date("Y/m/d"); $checkunix = strtotime($check['Date']); $todatunix = strtotime($today); $diff = ($todatunix - $checkunix ) / ( 60 * 60 * 24); if ($diff < 30 ) { return true; } else { return false; } } //5,10,15,20,25,月末 function DateChk( $check ) { $wk = date('Y/m/t'); //月末 $tmp = substr($check['Date'], -2); //後ろ2文字 $tmp = (int)$tmp; if ( ($tmp % 5) == 0 || $check['Date'] == $wk) { return true; } else { return false; } }
これだと31日が存在する月の30日でも通してしまうので困っています。
switchを使って1日ずつ設定するしかないでしょうか。。
何か良い方法がありましたらご教授ください。
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/10 06:19
2017/08/10 06:22