1
0

Fix issue with JavaScript and time zones. (Only occurred when UTC was on

a different date than local time.)
This commit is contained in:
2018-05-09 01:37:32 +02:00
parent d14eb463f5
commit 617e502cf3

View File

@ -11,44 +11,51 @@ window.goNext = ->
window.updateDateNav = (_dateFrom, _dateTo) ->
console.log 'updateDateNav: %o, %o', _dateFrom, _dateTo
_dateFrom ?= window.dateFrom
_dateTo ?= window.dateTo
# Prepare for calculations
objFrom = new Date _dateFrom
objTo = new Date _dateTo
today = new Date
today.setHours 0
today.setMinutes 0
today.setSeconds 0
today = new Date today.getTime() - today.getTimezoneOffset() * 60000
span = objTo.getTime() - objFrom.getTime() # milliseconds
console.log 'Current range: %o - %o (%o)', _dateFrom, _dateTo, span
#console.log 'Current range: %o - %o (%o)', _dateFrom, _dateTo, span
#console.log 'Objects: %o - %o', objFrom, objTo
objPrevTo = new Date objFrom.getTime()
objPrevTo.setDate objPrevTo.getDate() - 1 # get day before current "dateFrom"
objPrevTo.setUTCDate objPrevTo.getUTCDate() - 1 # get day before current "dateFrom"
objPrevFrom = new Date objPrevTo.getTime() - span # calculate span
window.datePrevFrom = objPrevFrom.toISOString()[...10]
window.datePrevTo = objPrevTo.toISOString()[...10]
console.log 'PREV button will go to: %o - %o', window.datePrevFrom, window.datePrevTo
#console.log 'PREV button will go to: %o - %o', window.datePrevFrom, window.datePrevTo
objNextFrom = new Date objTo.getTime()
objNextFrom.setDate objNextFrom.getDate() + 1 # get day after current "dateTo"
objNextFrom.setUTCDate objNextFrom.getUTCDate() + 1 # get day after current "dateTo"
objNextTo = new Date objNextFrom.getTime() + span # calculate span
window.dateNextFrom = objNextFrom.toISOString()[...10]
window.dateNextTo = objNextTo.toISOString()[...10]
console.log 'NEXT button will go to: %o - %o', window.dateNextFrom, window.dateNextTo
#console.log 'NEXT button will go to: %o - %o', window.dateNextFrom, window.dateNextTo
# disable Next button if we'd end up in the future
if objNextFrom > new Date()
if objNextFrom > today
console.log 'Disabling NEXT button because %o is in the future. (Today is %o)', objNextFrom, today
$('#nextButton').addClass 'disabled'
else
$('#nextButton').removeClass 'disabled'
# disable today button if dateFrom isn't today
if _dateFrom is new Date().toISOString()[...10]
if _dateFrom is today.toISOString()[...10]
$('#todayButton').addClass 'disabled'
$('#livemap_on').removeClass 'disabled'
else