開始日を入力したら終了日は開始日以降にする
終了日を入力したら開始日は終了日以前しか入力できないようにする
<input type="text" name="start"> ~ <input type="text" name="end"> <script> var format = 'yy/mm/dd'; var start = $("[name=start]").datepicker({ dateFormat: 'yy/mm/dd' }).on("change", function(){ end.datepicker("option", "minDate", getDate(this)); }); var end = $("[name=end]").datepicker({ dateFormat: 'yy/mm/dd' }).on("change", function(){ start.datepicker("option", "maxDate", getDate(this)); }); function getDate(element){ var date; try { date = $.datepicker.parseDate(format, element.value); } catch(error){ date = null; } return date; } </script>
コントローラ(サーバ側)で制御するよりも、フロントで制御した方がユーザフレンドリーです。