ASTE#37915 oplossing voor tijdzones met timezoneoffset toegevoegd

svn path=/Website/trunk/; revision=33018
This commit is contained in:
2017-03-02 16:17:45 +00:00
parent dd3a5a7208
commit 44341f8ba8
2 changed files with 30 additions and 4 deletions

View File

@@ -289,6 +289,9 @@ var shared = {
}
};
var DEFAULT_TIMEZONE_OFFSET = 1; // GMT + defaultTimeZoneOffset is default if not found in db (1 = Amsterdam)
var SERVER_TIMEZONE_OFFSET = 1; // server (database) times are in GMT + serverTimeZoneOffset
// Check for parameter pName and return the value
// If not specified return defVal
// If defVal not specified pName a required parameter
@@ -680,6 +683,19 @@ function transitQS()
function padout(number) { return (number < 10) ? "0" + number : number; }
function timeZoneOffset()
{
var timeZoneOffset = user.timezone_offset();
if (timeZoneOffset === null) timeZoneOffset = DEFAULT_TIMEZONE_OFFSET;
timeZoneOffset -= SERVER_TIMEZONE_OFFSET;
return timeZoneOffset * 1000 * 60 * 60;
}
function correctedTimeZoneOffset(thisDate)
{
return new Date(thisDate.valueOf() + timeZoneOffset());
}
// This function should only be used to format display,
// <20> never as part of a computation.
function toTimeString(jsDate, bWithSeconds)
@@ -703,7 +719,7 @@ function toTimeString(jsDate, bWithSeconds)
if (!jsDate)
return "";
jsDate = new Date(jsDate.valueOf() + 1); // rounding errors
jsDate = correctedTimeZoneOffset(jsDate);
ret = padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes());
if (bWithSeconds) ret += ":" + padout(jsDate.getSeconds());
@@ -730,6 +746,8 @@ function toDateString(jsDate, noDay, pretty)
if (!jsDate)
return "";
jsDate = correctedTimeZoneOffset(jsDate);
// Ik wil graag, alleen als parameter friendly?, voor de datums gisteren, vandaag en morgen de tekst Gisteren, Vandaag en Morgen opleveren
// Voor lijsten/sortering is dat vaak niet handig, maar soms is het veel begrijpelijker. Als de mogelijkheid er is, kunnen we
// geleidelijk de toepassing uitbreiden. In Lopende zaken op de portal om mee te beginnen.
@@ -1332,21 +1350,21 @@ Date.prototype.toSQL = function toSQL(withTime)
Date.prototype.beginToSQL = function beginToSQL()
{
var theDateStart = new Date(this);
var theDateStart = correctedTimeZoneOffset(this);
theDateStart.setHours(0, 0);
return theDateStart.toSQL(true);
}
Date.prototype.endToSQL = function endToSQL()
{
var theDateEnd = new Date(this);
var theDateEnd = correctedTimeZoneOffset(this);
theDateEnd.setHours(23, 59);
return theDateEnd.toSQL(true);
}
Date.prototype.midnight = function midnight()
{
var midn = new Date(this);
var midn = correctedTimeZoneOffset(this);
midn.setHours(0,0,0,0);
return midn;
}

View File

@@ -70,6 +70,7 @@ Perslid.prototype._require_prs_perslid = function __require_prs_perslid()
+ " , prs_perslid_wachtwoord_exp"
+ " , prs_perslid_apikey"
+ " , prs_perslid_terms_version"
+ " , prs_perslid_timezone_offset"
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_key = " + this._prs_perslid_key
var oRs = Oracle.Execute(sql);
@@ -112,6 +113,7 @@ Perslid.prototype._require_prs_perslid = function __require_prs_perslid()
this._prs_perslid_wachtwoord_exp = new Date(oRs("prs_perslid_wachtwoord_exp").Value);
this._prs_perslid_apikey = oRs("prs_perslid_apikey").value;
this._prs_perslid_terms_version = oRs("prs_perslid_terms_version").value;
this._prs_perslid_timezone_offset = oRs("prs_perslid_timezone_offset").value;
if (this._prs_perslid_options)
{
@@ -507,6 +509,12 @@ Perslid.prototype.terms_version = function _terms_version()
return this._prs_perslid_terms_version;
}
Perslid.prototype.timezone_offset = function _timezone_offset()
{
this._require_prs_perslid();
return this._prs_perslid_timezone_offset;
}
// Als de credentials zijn gewijzigd *nadat* je bent ingelogd
// gaan we moeilijk doen (vanuit common.inc)
Perslid.prototype.credentials_changed = function _credentials_changed()