Bootstrap Date/Time: Override default minute selection
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min.js"></script>
<script src="https://raw.githubusercontent.com/tarruda/bootstrap-datetimepicker/master/src/js/bootstrap-datetimepicker.js"></script>
<script src="http://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.pt-BR.js"></script>
Selected: <label data-bind='text: totime'></label>
<br/>
<input data-format="hh:mm" data-bind="datepicker1:totime, value:totime">
</input>
JavaScript
ko.bindingHandlers.datepicker1 = {
init: function (element, valueAccessor, allBindingsAccessor) {
$(function () {
$(element).parent().datetimepicker({
pickDate: false,
pickSeconds: false
});
var picker = $(element).parent().datetimepicker().data('datetimepicker');
var obj = $(element).parent().datetimepicker()
});
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$(element).parent().on('changeDate', function () {
$(element).change();
});
//when a user changes the date, update the view model
ko.utils.registerEventHandler(element, "change", function (event) {
var value = valueAccessor();
var input = $(event.target);
var val = input.val();
event.stopPropagation();
event.preventDefault();
var currentTime = new Date();
var hours = currentTime.getHours();
currentTime.setMinutes(currentTime.getMinutes() + 30);
var minutes = currentTime.getMinutes();
if (minutes < 10) minutes = "0" + minutes;
var totime = hours + ":" + minutes;
});
},
update: function (element, valueAccessor) {
var widget = $(element);
var obs = valueAccessor();
var picker = $(element).parent()
.datetimepicker()
.data('datetimepicker')
obs(picker.getDate())
}
};
vm = {
totime: ko.observable('')
};
vm.totime.subscribe(function(nv){
console.log("New time: " + nv)
});
ko.applyBindings(vm)
var padLeft = function padLeft(s) {
if (2 < s.length){ return s;}
return Array(2 - s.length + 1).join('0') + s;
};
(function () {
var table =...