日付の範囲(期間)が指定できるカレンダー「Continuous Calendar」
当ページのリンクには広告が含まれています。
スポンサーリンク
日付の範囲(期間)が指定できるカレンダーを実装してくれるプラグイン「Continuous Calendar」を紹介します。
jQueryプラグイン「Continuous Calendar」
このプラグインを使えば、マウスを使って、カレンダーの日付をドラッグすることで日付の範囲(期間)を指定することができます。
指定した期間の日付・時間を拾ってくれるので、期間がどのくらいかを表示するのも容易です。
スポンサーリンク
それではデモページをご覧ください。
デモのソース(HTML + jQuery)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="description" content="Continuous Calendar のデモでーす。"> <title>Continuous Calendar - jQueryプラグイン</title> <link rel="stylesheet" href="css/style.css" type="text/css"/> <link rel="stylesheet" href="css/jquery.continuousCalendar-latest-min.css" /> </head> <body> <h1>Continuous Calendar のデモでーす。</h1> <p>カレンダーの日付をドラッグしてみてください。</p> <div id="timeCalendar"> <input type="hidden" class="startDate" name="tripStartDate"/> <input type="hidden" class="endDate" name="tripEndDate"/> <div class="continuousCalendar"></div> <div class="dateLabels"> <div> <label for="starts">始め</label> <span class="startDateLabel"></span> <select id="starts" name="tripStartTime"></select> </div> <div> <label for="ends">終わり</label> <span class="endDateLabel"></span> <select id="ends" name="tripEndTime"></select> </div> <div> <label>期間</label> <span class="totalTimeOfTrip"></span> </div> </div> </div> <script charset="utf-8" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script src="js/jquery.continuousCalendar-latest-min.js" charset="UTF-8"></script> <script> $("#timeCalendar").continuousCalendar({ weeksBefore: 10, lastDate: "today", selectToday: true, isRange: true }); $("#timeCalendar").bind('calendarChange', function() { var container = $(this) var startTime = container.find('select[name=tripStartTime]').val() var endTime = container.find('select[name=tripEndTime]').val() var range = container.calendarRange() range = range.withTimes(startTime, endTime) container.find('.totalTimeOfTrip').text(DateFormat.formatRange(range, DateLocale.EN)).toggleClass('invalid', !range.isValid()) }); $("#timeCalendar select").bind('change', function() { $("#timeCalendar").trigger('calendarChange'); }); $("#timeCalendar select").each(function() { for(i = 0; i < 24; i++) { $(this).append($("<option>").text(i + ":00")).append($("<option>").text(i + ":30")); } }); </script> </body> </html>
スポンサーリンク