diff --git a/ui/jquery.ui.datepicker.js b/ui/jquery.ui.datepicker.js index e09dc5a50e2..d402cea9a0e 100644 --- a/ui/jquery.ui.datepicker.js +++ b/ui/jquery.ui.datepicker.js @@ -1424,12 +1424,17 @@ $.extend(Datepicker.prototype, { new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); var minDate = this._getMinMaxDate(inst, 'min'); var maxDate = this._getMinMaxDate(inst, 'max'); + var yearRange = this._get(inst, 'yearRange'); var drawMonth = inst.drawMonth - showCurrentAtPos; var drawYear = inst.drawYear; if (drawMonth < 0) { drawMonth += 12; drawYear--; } + if (yearRange) { + var years = this._getYearRange(yearRange, minDate, maxDate); + drawYear = years[1]; + } if (maxDate) { var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); @@ -1614,22 +1619,12 @@ $.extend(Datepicker.prototype, { html += '' + drawYear + ''; else { // determine range of years to display - var years = this._get(inst, 'yearRange').split(':'); - var thisYear = new Date().getFullYear(); - var determineYear = function(value) { - var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : - (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : - parseInt(value, 10))); - return (isNaN(year) ? thisYear : year); - }; - var year = determineYear(years[0]); - var endYear = Math.max(year, determineYear(years[1] || '')); - year = (minDate ? Math.max(year, minDate.getFullYear()) : year); - endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + var yearRange = this._get(inst, 'yearRange'); + var years = this._getYearRange(yearRange, minDate, maxDate); inst.yearshtml += '