jQuery Plugin Selecting Date and Time Ranges
jQuery UI have build a wiget jQuery UI Datepicker is used to display inline calendar popup but with that it is not include time fields. To solve that problem a plug-in call Datepair is a lightweight, modular javascript plugin for intelligently selecting date and time ranges, inspired by Google ...
jQuery UI have build a wiget jQuery UI Datepicker is used to display inline calendar popup but with that it is not include time fields.
To solve that problem a plug-in call Datepair is a lightweight, modular javascript plugin for intelligently selecting date and time ranges, inspired by Google Calendar. It will keep the start and end date/times in sync and can set default values based on user action. There are no external dependencies, however it can easily be used with jQuery.

Requirements
- jQuery-timepicker
- jQuery UI
Installation
Add to Gemfile
gem "jquery-ui-rails"
gem "jquery-timepicker-rails"
then bundle install
Usage
Include dist/datepair.js , dist/jquery.datepair.js to vendor/assets/javascripts/
Then go to app/assets/javascripts/application.js
//= require jquery-ui
//= require jquery.timepicker.js
//= require datepair
//= require jquery.datepair
and add to app/assets/stylesheets/application.css
*= require jquery-ui
*= require jquery.timepicker.css
Create text input fields for the data & time range picker
app/views/events/_form.html.erb
<p id="datetimePicker">
<input type="text" class="date start" />
<input type="text" class="time start" /> to
<input type="text" class="time end" />
<input type="text" class="date end" />
</p>
Initialize the plugin with options app/assets/javascripts/event.js
$('#datetimePicker .time').timepicker({
'showDuration': true,
'timeFormat': 'g:ia'
});
$('#datetimePicker .date').datepicker({
'format': 'm/d/yyyy',
'autoclose': true
});
$('#datetimePicker').datepair({
parseDate: function(input) {
return $(input).datepicker('getDate');
},
updateDate: function(input, dateObj) {
$(input).datepicker('setDate', dateObj);
}
});
Available options
startClass: 'start',
endClass: 'end',
timeClass: 'time',
dateClass: 'date',
defaultDateDelta: 0,
defaultTimeDelta: 3600000,
anchor: 'start',
parseTime: function($input){
return $input.timepicker('getTime');
},
updateTime: function($input, dateObj){
$input.timepicker('setTime', dateObj);
},
parseDate: function($input){
return $input.datepicker('getDate');
},
updateDate: function($input, dateObj){
$input.datepicker('update', dateObj);
},
setMinTime: function($input, dateObj){
$input.timepicker('option', 'minTime', dateObj);
}
please check the demo.
References: jQuery timepicker jQuery UI Datepicker Datepair