From 19eb00692717db01ea65d25bd4a8c0f1eb1ec5f7 Mon Sep 17 00:00:00 2001 From: James Bunton Date: Fri, 5 Oct 2012 21:43:01 +1000 Subject: [PATCH] Work around for bug by fixing the current Date rather than amending calendar dates --- comingNext/index.html | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/comingNext/index.html b/comingNext/index.html index 812ae7f..1d45580 100644 --- a/comingNext/index.html +++ b/comingNext/index.html @@ -86,6 +86,18 @@ var config = { //------------------------------------------------------- // Nothing of interest from here on... //------------------------------------------------------- + +function fixDate(d) { + if (d.getTimezoneOffset() < -12*60) { + d = new Date((new Date(d.getTime()-24*3600*1000)).toLocaleString()); + } + return d +} + +function newDate() { + return fixDate(new Date()); +} + var panelNum = 0; // use 1 for second panel var version = "1.37"; var versionURL = "http://comingnext.sourceforge.net/version.xml"; @@ -94,7 +106,7 @@ var cacheEntriesHtml = []; var months_translated = []; var weekdays_translated = []; var orientation = ''; -var now = new Date(); +var now = newDate(); var mode = 0; // 0 = homescreen, 1 = fullscreen, 2 = settings, 3 = about, 4 = check for update var reqV = null; var settingsCalEntryId = null; @@ -113,7 +125,6 @@ var statupSuccessful = false; // indicates if everything started up wihtout erro var use12hoursTimeFormat = false; // defines how time should be formated: 19:00 or 07:00 pm var timeFormatSeparator = ":"; // format time 19:00 or 19.00 depending on system setting var defaultFontSize = null; // default browser font size will be set by init -var displayOffset = 0; // vars for daylight saving time var summertime = false; // true, if current date is in summer, false if in winter @@ -256,7 +267,7 @@ function collectLocales() } } for (weekday = 0; weekday < 7; weekday++) { - var startDate = new Date(2000, 0, 2 + weekday); // date that we know for sure is a sunday + var startDate = new Date(2000, 0, 2 + weekday, 12); // date that we know for sure is a sunday var item = new Object(); item.Type = "DayEvent"; @@ -532,9 +543,6 @@ function parseDate(dateString) log('parseDate(): fixing time +1h: ' + result); } } - if (displayOffset != 0) { - result = new Date(result.getTime() + displayOffset); - } return result; } @@ -672,7 +680,7 @@ function updateData() lastReloadTime = null; // force calendar data reload on this update } - now = new Date(); + now = newDate(); // only reload calendar data every 6 hours, visual updates occure more often if (!lastReloadTime || now.getTime() - lastReloadTime.getTime() > reloadInterval) { @@ -730,7 +738,7 @@ function updateData() } else { entryLists = [meetingList]; } - lastReloadTime = new Date(); + lastReloadTime = newDate(); } catch(e) { error('loading Calendar items list:' + e + ', line ' + e.line); return; @@ -957,7 +965,7 @@ function updateData() cacheEntriesHtml = entriesHtml; } - lastUpdateTime = new Date(); + lastUpdateTime = newDate(); } catch(e) { error('displaying list:' + e + ', line ' + e.line); return; @@ -997,7 +1005,7 @@ function handleOnShow() { updateScreen(); - var time = new Date(); + var time = newDate(); if (time.getTime() - lastUpdateTime.getTime() > config['updateDataInterval'].Value * 60 * 1000) { log('updateScreen(): force updateData() because last update was too long ago (' + (time.getTime() - lastUpdateTime.getTime()) / 1000 + 's)'); clearUpdateTimer(); @@ -1047,7 +1055,6 @@ function init() else { mode = 1; } - checkForOffByOneBug(); log("init(): updateScreen()"); updateScreen(); if (config['useBackgroundImage'].Value) @@ -1062,17 +1069,6 @@ function init() statupSuccessful = true; } -function checkForOffByOneBug() { - var tz = new Date().getTimezoneOffset(); - if (tz < 0) { - tz = -tz; - } - tz = tz / 60; - if (tz > 12) { - displayOffset = 24*3600*1000; - } -} - function checkOrientation() { //updateScreen(); -- 2.39.2