From ad923a2b79f98dc322a76fc86a2f9961d47fe422 Mon Sep 17 00:00:00 2001 From: ilhan orhan Date: Thu, 30 Apr 2020 14:05:47 +0300 Subject: [PATCH] fix(ui5-timepicker): fix AM/PM selection (#1569) Fix period selection. Previously selecting "PM" results in "AM" within the input field and vice versa. --- packages/main/src/TimePicker.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/main/src/TimePicker.js b/packages/main/src/TimePicker.js index 33f94b9b2722..848486d5f73c 100644 --- a/packages/main/src/TimePicker.js +++ b/packages/main/src/TimePicker.js @@ -493,16 +493,21 @@ class TimePicker extends UI5Element { minutesSlider = this.minutesSlider, hoursSlider = this.hoursSlider, periodsSlider = this.periodsSlider, - hours = hoursSlider ? hoursSlider.getAttribute("value") : this._hoursParameters.minHour.toString(), minutes = minutesSlider ? minutesSlider.getAttribute("value") : "0", seconds = secondsSlider ? secondsSlider.getAttribute("value") : "0", period = periodsSlider ? periodsSlider.getAttribute("value") : this.periodsArray[0]; - if (this._hoursParameters.isTwelveHoursFormat && period === this.periodsArray[0]) { - selectedDate.setHours(hours * 1 + 12); - } else { - selectedDate.setHours(hours); + let hours = hoursSlider ? hoursSlider.getAttribute("value") : this._hoursParameters.minHour.toString(); + + if (period === this.periodsArray[0]) { // AM + hours = hours === "12" ? 0 : hours; } + + if (period === this.periodsArray[1]) { // PM + hours = hours === "12" ? hours : hours * 1 + 12; + } + + selectedDate.setHours(hours); selectedDate.setMinutes(minutes); selectedDate.setSeconds(seconds);