Skip to content

Commit 32dd0ef

Browse files
authored
fix(ui5-calendar): Today date is propertly calculated no matter what timezone (#2660)
1 parent ff247f0 commit 32dd0ef

File tree

5 files changed

+18
-10
lines changed

5 files changed

+18
-10
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import CalendarDate from "./CalendarDate.js";
2+
3+
/**
4+
* Returns a UTC timestamp representing today
5+
* @public
6+
*/
7+
const getTodayUTCTimestamp = primaryCalendarType => CalendarDate.fromLocalJSDate(new Date(), primaryCalendarType).valueOf() / 1000;
8+
9+
export default getTodayUTCTimestamp;

packages/main/src/CalendarPart.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
22
import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
33
import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
4-
import getRoundedTimestamp from "@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js";
4+
import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
55
import DateComponentBase from "./DateComponentBase.js";
66

77
/**
@@ -52,7 +52,7 @@ class CalendarPart extends DateComponentBase {
5252
* @protected
5353
*/
5454
get _timestamp() {
55-
let timestamp = this.timestamp !== undefined ? this.timestamp : getRoundedTimestamp();
55+
let timestamp = this.timestamp !== undefined ? this.timestamp : getTodayUTCTimestamp(this._primaryCalendarType);
5656
if (timestamp < this._minTimestamp || timestamp > this._maxTimestamp) {
5757
timestamp = this._minTimestamp;
5858
}

packages/main/src/DatePicker.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
22
import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
33
import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
44
import getRoundedTimestamp from "@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js";
5+
import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
56
import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
67
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
78
import {
@@ -373,14 +374,12 @@ class DatePicker extends DateComponentBase {
373374
* @protected
374375
*/
375376
get _calendarTimestamp() {
376-
let millisecondsUTC;
377377
if (this.value && this._checkValueValidity(this.value)) {
378-
millisecondsUTC = this.dateValueUTC.getTime();
379-
} else {
380-
millisecondsUTC = new Date().getTime();
378+
const millisecondsUTC = this.dateValueUTC.getTime();
379+
return getRoundedTimestamp(millisecondsUTC);
381380
}
382381

383-
return getRoundedTimestamp(millisecondsUTC);
382+
return getTodayUTCTimestamp(this._primaryCalendarType);
384383
}
385384

386385
/**

packages/main/src/DateRangePicker.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import RenderScheduler from "@ui5/webcomponents-base/dist/RenderScheduler.js";
22
import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
33
import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
4-
import getRoundedTimestamp from "@ui5/webcomponents-localization/dist/dates/getRoundedTimestamp.js";
4+
import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
55

66
// Styles
77
import DateRangePickerCss from "./generated/themes/DateRangePicker.css.js";
@@ -104,7 +104,7 @@ class DateRangePicker extends DatePicker {
104104
* @override
105105
*/
106106
get _calendarTimestamp() {
107-
return this._firstDateTimestamp || getRoundedTimestamp();
107+
return this._firstDateTimestamp || getTodayUTCTimestamp(this._primaryCalendarType);
108108
}
109109

110110
/**

packages/main/test/samples/Calendar.sample.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ <h3>Islamic Calendar</h3>
9797
<h3>Buddhist Calendar</h3>
9898
<div class="snippet">
9999
<div class="datepicker-width">
100-
<ui5-calendar primary-calendar-type='Buddhist'></ui5-calendarr>
100+
<ui5-calendar primary-calendar-type='Buddhist'></ui5-calendar>
101101
</div>
102102
</div>
103103
<pre class="prettyprint lang-html"><xmp>

0 commit comments

Comments
 (0)