bootstrap-datepicker插件bug:当天日期偏前或偏后时,选择的日期会出现减少或增加一个月 在选择与今日
2017-11-03 18:25
741 查看
1.问题描述:
当天日期偏前或偏后时,选择与今日日期不再同一个月的日期,会出现减少或增加一个月
a. 当前日期是11月1号 我选择10月30号再选择11月1号。显示的日期会是12月1号,反之如果是30号就会减少一个月
2.问题解决:
查看源代码:bootstrap-datepicker.min.js
当天日期偏前或偏后时,选择与今日日期不再同一个月的日期,会出现减少或增加一个月
a. 当前日期是11月1号 我选择10月30号再选择11月1号。显示的日期会是12月1号,反之如果是30号就会减少一个月
2.问题解决:
查看源代码:bootstrap-datepicker.min.js
click: function(b) { b.preventDefault(), b.stopPropagation(); var e, f, g, h, i, j, k; e = a(b.target), e.hasClass("datepicker-switch") && this.showMode(1); var l = e.closest(".prev, .next"); l.length > 0 && (f = r.modes[this.viewMode].navStep * (l.hasClass("prev") ? -1 : 1), 0 === this.viewMode ? (this.viewDate = this.moveMonth(this.viewDate, f), this._trigger("changeMonth", this.viewDate)) : (this.viewDate = this.moveYear(this.viewDate, f), 1 === this.viewMode && this._trigger("changeYear", this.viewDate)), this.fill()), e.hasClass("today") && (this.showMode( - 2), this._setDate(d(), "linked" === this.o.todayBtn ? null: "view")), e.hasClass("clear") && this.clearDates(), e.hasClass("disabled") || (e.hasClass("day") && (g = parseInt(e.text(), 10) || 1, h = this.viewDate.getUTCFullYear(), i = this.viewDate.getUTCMonth(), e.hasClass("old") && (0 === i ? (i = 11, h -= 1, j = !0, k = !0) : (i -= 1, j = !0)), e.hasClass("new") && (11 === i ? (i = 0, h += 1, j = !0, k = !0) : (i += 1, j = !0)), this._setDate(c(h, i, g)), k && this._trigger("changeYear", this.viewDate), j && this._trigger("changeMonth", this.viewDate)), e.hasClass("month") && (this.viewDate.setUTCDate(1), g = 1, i = e.parent().find("span").index(e), h = this.viewDate.getUTCFullYear(), this.viewDate.setUTCMonth(i), this._trigger("changeMonth", this.viewDate), 1 === this.o.minViewMode ? (this._setDate(c(h, i, g)), this.showMode()) : this.showMode( - 1), this.fill()), (e.hasClass("year") || e.hasClass("decade") || e.hasClass("century")) && (this.viewDate.setUTCDate(1), g = 1, i = 0, h = parseInt(e.text(), 10) || 0, this.viewDate.setUTCFullYear(h), e.hasClass("year") && (this._trigger("changeYear", this.viewDate), 2 === this.o.minViewMode && this._setDate(c(h, i, g))), e.hasClass("decade") && (this._trigger("changeDecade", this.viewDate), 3 === this.o.minViewMode && this._setDate(c(h, i, g))), e.hasClass("century") && (this._trigger("changeCentury", this.viewDate), 4 === this.o.minViewMode && t 4000 his._setDate(c(h, i, g))), this.showMode( - 1), this.fill())), this.picker.is(":visible") && this._focused_from && a(this._focused_from).focus(), delete this._focused_from },修改成:
click: function(b) { b.preventDefault(), b.stopPropagation(); var e, f, g, h, i, j, k; e = a(b.target), e.hasClass("datepicker-switch") && this.showMode(1); var l = e.closest(".prev, .next"); l.length > 0 && (f = r.modes[this.viewMode].navStep * (l.hasClass("prev") ? -1 : 1), 0 === this.viewMode ? (this.viewDate = this.moveMonth(this.viewDate, f), this._trigger("changeMonth", this.viewDate)) : (this.viewDate = this.moveYear(this.viewDate, f), 1 === this.viewMode && this._trigger("changeYear", this.viewDate)), this.fill()), //原因是最后选择今日 又处于上个月或者下个月(old是上个月,new是下个月)的时候 算月份的时候加重复了。 e.hasClass("today") && !e.hasClass("old") && !e.hasClass("new") && (this.showMode( - 2), this._setDate(d(), "linked" === this.o.todayBtn ? null: "view")), e.hasClass("clear") && this.clearDates(), e.hasClass("disabled") || (e.hasClass("day") && (g = parseInt(e.text(), 10) || 1, h = this.viewDate.getUTCFullYear(), i = this.viewDate.getUTCMonth(), e.hasClass("old") && (0 === i ? (i = 11, h -= 1, j = !0, k = !0) : (i -= 1, j = !0)), e.hasClass("new") && (11 === i ? (i = 0, h += 1, j = !0, k = !0) : (i += 1, j = !0)), this._setDate(c(h, i, g)), k && this._trigger("changeYear", this.viewDate), j && this._trigger("changeMonth", this.viewDate)), e.hasClass("month") && (this.viewDate.setUTCDate(1), g = 1, i = e.parent().find("span").index(e), h = this.viewDate.getUTCFullYear(), this.viewDate.setUTCMonth(i), this._trigger("changeMonth", this.viewDate), 1 === this.o.minViewMode ? (this._setDate(c(h, i, g)), this.showMode()) : this.showMode( - 1), this.fill()), (e.hasClass("year") || e.hasClass("decade") || e.hasClass("century")) && (this.viewDate.setUTCDate(1), g = 1, i = 0, h = parseInt(e.text(), 10) || 0, this.viewDate.setUTCFullYear(h), e.hasClass("year") && (this._trigger("changeYear", this.viewDate), 2 === this.o.minViewMode && this._setDate(c(h, i, g))), e.hasClass("decade") && (this._trigger("changeDecade", this.viewDate), 3 === this.o.minViewMode && this._setDate(c(h, i, g))), e.hasClass("century") && (this._trigger("changeCentury", this.viewDate), 4 === this.o.minViewMode && this._setDate(c(h, i, g))), this.showMode( - 1), this.fill())), this.picker.is(":visible") && this._focused_from && a(this._focused_from).focus(), delete this._focused_from },问题解决。
相关文章推荐
- 此项目是bootstrap-datetimepicker 项目 的一个分支,原项目不支持 Time 选择。 其它部分也进行了改进、增强,例如load 过程增加了对 ISO-8601 日期格式的支持。
- 使用datepicker插件实现日期选择的基本操作 8-5
- bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
- 页面日期选择控件--jquery ui datepicker 插件
- jQuery插件Datepicker日期选择器实现
- Bootstrap datepicker日期选择器插件使用详解
- 日期选择器react-bootstrap-date-picker的使用
- DatePicker - 日期选择插件
- Query学习之:Datepicker日期选择插件 推荐
- 推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
- bootstrap-datepicker限定可选时间范围 一、应用场景 实际应用中可能会根据日期字段查询某个日期范围内的数据,则需要对日期选择器可选时间进行限制, 如:开始时间不能大于结束时间,
- 日期时间范围选择插件-daterangepicker使用总结
- Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
- jQuery插件Datepicker日期选择器实现Javascript自定义日期时间选择功能
- bootstrap的datepicker在选择日期后调用某个方法 ,2016-11-08
- jQuery插件datepicker 日期连续选择
- Bootstrap的DatePicker日期范围选择
- Datepicker日期选择框插件
- 强大的独立日期选择器(date picker)插件 - Kalendae
- yii2框架中引用bootstrap中的日期插件yii2-date-picker