diff --git a/src/js/bootstrap-datetimepicker.js b/src/js/bootstrap-datetimepicker.js index c566f890e..7fcca4ca2 100644 --- a/src/js/bootstrap-datetimepicker.js +++ b/src/js/bootstrap-datetimepicker.js @@ -52,6 +52,9 @@ this.language = options.language in dates ? options.language : 'en' this.pickDate = options.pickDate; this.pickTime = options.pickTime; + this.hourStep = options.hourStep; + this.minuteStep = options.minuteStep; + this.secondStep = options.secondStep; this.isInput = this.$element.is('input'); this.component = false; if (this.$element.find('.input-append') || this.$element.find('.input-prepend')) @@ -639,27 +642,27 @@ actions: { incrementHours: function(e) { - this._date.setUTCHours(this._date.getUTCHours() + 1); + this._date.setUTCHours(this._date.getUTCHours() + this.hourStep); }, incrementMinutes: function(e) { - this._date.setUTCMinutes(this._date.getUTCMinutes() + 1); + this._date.setUTCMinutes(this._date.getUTCMinutes() + this.minuteStep); }, incrementSeconds: function(e) { - this._date.setUTCSeconds(this._date.getUTCSeconds() + 1); + this._date.setUTCSeconds(this._date.getUTCSeconds() + this.secondStep); }, decrementHours: function(e) { - this._date.setUTCHours(this._date.getUTCHours() - 1); + this._date.setUTCHours(this._date.getUTCHours() - this.hourStep); }, decrementMinutes: function(e) { - this._date.setUTCMinutes(this._date.getUTCMinutes() - 1); + this._date.setUTCMinutes(this._date.getUTCMinutes() - this.minuteStep); }, decrementSeconds: function(e) { - this._date.setUTCSeconds(this._date.getUTCSeconds() - 1); + this._date.setUTCSeconds(this._date.getUTCSeconds() - this.secondStep); }, togglePeriod: function(e) { @@ -1097,7 +1100,10 @@ pickSeconds: true, startDate: -Infinity, endDate: Infinity, - collapse: true + collapse: true, + hourStep: 1, + minuteStep: 1, + secondStep: 1 }; $.fn.datetimepicker.Constructor = DateTimePicker; var dpgId = 0; diff --git a/test/specs.coffee b/test/specs.coffee index 8497b032b..2e3463417 100644 --- a/test/specs.coffee +++ b/test/specs.coffee @@ -1,6 +1,10 @@ describe 'datetimepicker', -> - beforeEach setupDateTimePicker() + beforeEach setupDateTimePicker({ + hourStep: 2, + minuteStep: 5, + secondStep: 15 + }) afterEach teardownDateTimePicker() @@ -118,29 +122,29 @@ describe 'datetimepicker', -> .to.be.true done() - it 'increments/decrements hour', -> + it 'adds/subtracts the hours step', -> @addon.click() @widget.find('.picker-switch a').click() @timeWidget.find('[data-action=incrementHours]').click() - @dateShouldEqual 1905, 4, 1, 22, 52, 14 + @dateShouldEqual 1905, 4, 1, 23, 52, 14 @timeWidget.find('[data-action=decrementHours]').click() @dateShouldEqual 1905, 4, 1, 21, 52, 14 - it 'increments/decrements minutes', -> + it 'adds/subtracts the minutes step', -> @addon.click() @widget.find('.picker-switch a').click() @timeWidget.find('[data-action=incrementMinutes]').click() # 15 minutes step is the default - @dateShouldEqual 1905, 4, 1, 21, 53, 14 + @dateShouldEqual 1905, 4, 1, 21, 57, 14 @timeWidget.find('[data-action=decrementMinutes]').click() @dateShouldEqual 1905, 4, 1, 21, 52, 14 - it 'increments/decrements minutes', -> + it 'adds/subtracts the seconds step', -> @addon.click() @widget.find('.picker-switch a').click() @timeWidget.find('[data-action=incrementSeconds]').click() # 30 seconds step is the default - @dateShouldEqual 1905, 4, 1, 21, 52, 15 + @dateShouldEqual 1905, 4, 1, 21, 52, 29 @timeWidget.find('[data-action=decrementSeconds]').click() @dateShouldEqual 1905, 4, 1, 21, 52, 14