Skip to content

Commit 301d233

Browse files
#689 DST-aware TimeUI (#690)
1 parent c9fe638 commit 301d233

File tree

2 files changed

+28
-26
lines changed

2 files changed

+28
-26
lines changed

src/essence/Ancillary/TimeUI.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,10 +377,12 @@
377377
position: absolute;
378378
background: #601a2e;
379379
transition: opacity 0.2s ease-out;
380+
z-index: -1;
380381
}
381382
#mmgisTimeUITimelineExtent {
382383
height: 100%;
383384
position: absolute;
384385
background: rgb(96, 78, 26, 0.7);
385386
transition: opacity 0.2s ease-out;
387+
z-index: -1;
386388
}

src/essence/Ancillary/TimeUI.js

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -679,9 +679,7 @@ const TimeUI = {
679679
date = new Date(TimeUI._initialEnd)
680680
const savedEndDate = new Date(date)
681681

682-
const offsetEndDate = new Date(
683-
date.getTime() + date.getTimezoneOffset() * 60000
684-
)
682+
const offsetEndDate = TimeUI.addOffset(date.getTime())
685683
const parsedEnd = TimeUI.endTempus.dates.parseInput(
686684
new Date(offsetEndDate)
687685
)
@@ -707,9 +705,7 @@ const TimeUI = {
707705
}
708706
date = new Date(TimeUI._initialStart)
709707

710-
const offsetStartDate = new Date(
711-
date.getTime() + date.getTimezoneOffset() * 60000
712-
)
708+
const offsetStartDate = TimeUI.addOffset(date.getTime())
713709
const parsedStart = TimeUI.startTempus.dates.parseInput(
714710
new Date(offsetStartDate)
715711
)
@@ -1104,9 +1100,7 @@ const TimeUI = {
11041100
let idx = 0
11051101
if (TimeUI.modes[TimeUI.modeIndex] === 'Point') idx -= 1
11061102
const date = new Date(e.detail.value)
1107-
const offsetNowDate = new Date(
1108-
date.getTime() + date.getTimezoneOffset() * 60000
1109-
)
1103+
const offsetNowDate = TimeUI.addOffset(date.getTime())
11101104
if (e.detail.activeHandle === idx) {
11111105
$('#mmgisTimeUIStartWrapperFake').css('display', 'block')
11121106
$('#mmgisTimeUIStartFake').val(
@@ -1139,9 +1133,7 @@ const TimeUI = {
11391133
if (TimeUI.modes[TimeUI.modeIndex] === 'Point') idx -= 1
11401134

11411135
const date = new Date(e.detail.value)
1142-
const offsetNowDate = new Date(
1143-
date.getTime() + date.getTimezoneOffset() * 60000
1144-
)
1136+
const offsetNowDate = TimeUI.addOffset(date.getTime())
11451137
if (e.detail.activeHandle === idx) {
11461138
const parsedNow = TimeUI.startTempus.dates.parseInput(
11471139
new Date(offsetNowDate)
@@ -1310,9 +1302,7 @@ const TimeUI = {
13101302
_setCurrentTime(force, forceDate, disableChange) {
13111303
if (TimeUI.now === true || force === true) {
13121304
let date = forceDate || new Date()
1313-
const offsetNowDate = new Date(
1314-
date.getTime() + date.getTimezoneOffset() * 60000
1315-
)
1305+
const offsetNowDate = TimeUI.addOffset(date.getTime())
13161306
const parsedNow = TimeUI.endTempus.dates.parseInput(
13171307
new Date(offsetNowDate)
13181308
)
@@ -1410,18 +1400,30 @@ const TimeUI = {
14101400
if (disableChange != true) TimeUI.change()
14111401
},
14121402
addOffset(timestamp) {
1413-
const date = new Date(timestamp)
1414-
const addedOffset = new Date(
1415-
date.getTime() + date.getTimezoneOffset() * 60000
1403+
const utcDate = new Date(timestamp)
1404+
return new Date(
1405+
utcDate.getUTCFullYear(),
1406+
utcDate.getUTCMonth(),
1407+
utcDate.getUTCDate(),
1408+
utcDate.getUTCHours(),
1409+
utcDate.getUTCMinutes(),
1410+
utcDate.getUTCSeconds(),
1411+
utcDate.getUTCMilliseconds()
14161412
)
1417-
return addedOffset
14181413
},
14191414
removeOffset(timestamp) {
1420-
const date = new Date(timestamp)
1421-
const removedOffset = new Date(
1422-
date.getTime() - date.getTimezoneOffset() * 60000
1415+
const localDate = new Date(timestamp)
1416+
return new Date(
1417+
Date.UTC(
1418+
localDate.getFullYear(),
1419+
localDate.getMonth(),
1420+
localDate.getDate(),
1421+
localDate.getHours(),
1422+
localDate.getMinutes(),
1423+
localDate.getSeconds(),
1424+
localDate.getMilliseconds()
1425+
)
14231426
)
1424-
return removedOffset
14251427
},
14261428
getCurrentTimestamp(removeOffset) {
14271429
let currentTimestamp = TimeUI._timeSliderTimestamp
@@ -1471,9 +1473,7 @@ const TimeUI = {
14711473

14721474
if (TimeUI.play) {
14731475
const date = new Date(TimeUI._timeSliderTimestamp)
1474-
const offsetNowDate = new Date(
1475-
date.getTime() // + date.getTimezoneOffset() * 60000 Not needed
1476-
)
1476+
const offsetNowDate = new Date(date.getTime())
14771477
const parsedNow = TimeUI.endTempus.dates.parseInput(
14781478
new Date(offsetNowDate)
14791479
)

0 commit comments

Comments
 (0)