<p id="basicExample">
    <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>
<script type="text/javascript" src="bootstrap-datepicker.js"></script>
<script type="text/javascript" src="jquery.timepicker.js"></script>
<script type="text/javascript" src="jquery.datepair.js"></script>
<script>
    // initialize input widgets first
    $('#basicExample .time').timepicker({
        'showDuration': true,
        'timeFormat': 'g:ia'
    });
    $('#basicExample .date').datepicker({
        'format': 'm/d/yyyy',
        'autoclose': true
    });
    // initialize datepair
    $('#basicExample').datepair();
</script>
            
            
        
        
            
            
// HTML not shown for brevity
$('#timeOnlyExample .time').timepicker({
    'showDuration': true,
    'timeFormat': 'g:ia'
});
$('#timeOnlyExample').datepair();
$('#dateOnlyExample .date').datepicker({
    'format': 'yyyy-m-d',
    'autoclose': true
});
$('#dateOnlyExample').datepair();
            
            
        
        
            
            
// HTML not shown for brevity
$('#defaultDeltaExample').datepair({
    'defaultDateDelta': 1,      // days
    'defaultTimeDelta': 7200000 // milliseconds
});
            
            
        
        
            
            
<script type="text/javascript" src="pikaday.js"></script>
<script type="text/javascript" src="jquery.ptTimeSelect.js"></script>
<script type="text/javascript" src="moment.js"></script>
<script>
    // initialize input widgets
    // ptTimeSelect doesn't trigger change event by default
    $('#alternateUiWidgetsExample .time').ptTimeSelect({
        'onClose': function($self) {
            $self.trigger('change');
        }
    });
    $('#alternateUiWidgetsExample .date').pikaday();
    var TIMEFORMAT = 'h:mm a';
    $('#alternateUiWidgetsExample').datepair({
        parseTime: function($input){
            // use moment.js to parse time
            var m = moment($input.val(), TIMEFORMAT);
            return m.toDate();
        },
        updateTime: function($input, dateObj){
            var m = moment(dateObj);
            $input.val(m.format(TIMEFORMAT));
        },
        parseDate: function($input){
            var picker = $input.data('pikaday');
            return picker.getDate();
        },
        updateDate: function($input, dateObj){
            var picker = $input.data('pikaday');
            return picker.setDate(dateObj);
        }
    });
</script>
            
            
        
        
            
            
// HTML not shown for brevity
// initialize input widgets first
$('#eventsExample .time').timepicker({
    'showDuration': true,
    'timeFormat': 'g:ia'
});
$('#eventsExample .date').datepicker({
    'format': 'm/d/yyyy',
    'autoclose': true
});
$('#eventsExample').datepair().on('rangeSelected', function(){
    $('#eventsExampleStatus').text('Valid range selected');
}).on('rangeIncomplete', function(){
    $('#eventsExampleStatus').text('Incomplete range');
}).on('rangeError', function(){
    $('#eventsExampleStatus').text('Invalid range');
});