ASTE#37915 oplossing voor tijdzones met timezoneoffset toegevoegd
svn path=/Website/trunk/; revision=33018
This commit is contained in:
@@ -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
|
// Check for parameter pName and return the value
|
||||||
// If not specified return defVal
|
// If not specified return defVal
|
||||||
// If defVal not specified pName a required parameter
|
// If defVal not specified pName a required parameter
|
||||||
@@ -680,6 +683,19 @@ function transitQS()
|
|||||||
|
|
||||||
function padout(number) { return (number < 10) ? "0" + number : number; }
|
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,
|
// This function should only be used to format display,
|
||||||
// <20> never as part of a computation.
|
// <20> never as part of a computation.
|
||||||
function toTimeString(jsDate, bWithSeconds)
|
function toTimeString(jsDate, bWithSeconds)
|
||||||
@@ -703,7 +719,7 @@ function toTimeString(jsDate, bWithSeconds)
|
|||||||
if (!jsDate)
|
if (!jsDate)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
jsDate = new Date(jsDate.valueOf() + 1); // rounding errors
|
jsDate = correctedTimeZoneOffset(jsDate);
|
||||||
|
|
||||||
ret = padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes());
|
ret = padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes());
|
||||||
if (bWithSeconds) ret += ":" + padout(jsDate.getSeconds());
|
if (bWithSeconds) ret += ":" + padout(jsDate.getSeconds());
|
||||||
@@ -730,6 +746,8 @@ function toDateString(jsDate, noDay, pretty)
|
|||||||
if (!jsDate)
|
if (!jsDate)
|
||||||
return "";
|
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
|
// 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
|
// 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.
|
// 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()
|
Date.prototype.beginToSQL = function beginToSQL()
|
||||||
{
|
{
|
||||||
var theDateStart = new Date(this);
|
var theDateStart = correctedTimeZoneOffset(this);
|
||||||
theDateStart.setHours(0, 0);
|
theDateStart.setHours(0, 0);
|
||||||
return theDateStart.toSQL(true);
|
return theDateStart.toSQL(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Date.prototype.endToSQL = function endToSQL()
|
Date.prototype.endToSQL = function endToSQL()
|
||||||
{
|
{
|
||||||
var theDateEnd = new Date(this);
|
var theDateEnd = correctedTimeZoneOffset(this);
|
||||||
theDateEnd.setHours(23, 59);
|
theDateEnd.setHours(23, 59);
|
||||||
return theDateEnd.toSQL(true);
|
return theDateEnd.toSQL(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Date.prototype.midnight = function midnight()
|
Date.prototype.midnight = function midnight()
|
||||||
{
|
{
|
||||||
var midn = new Date(this);
|
var midn = correctedTimeZoneOffset(this);
|
||||||
midn.setHours(0,0,0,0);
|
midn.setHours(0,0,0,0);
|
||||||
return midn;
|
return midn;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ Perslid.prototype._require_prs_perslid = function __require_prs_perslid()
|
|||||||
+ " , prs_perslid_wachtwoord_exp"
|
+ " , prs_perslid_wachtwoord_exp"
|
||||||
+ " , prs_perslid_apikey"
|
+ " , prs_perslid_apikey"
|
||||||
+ " , prs_perslid_terms_version"
|
+ " , prs_perslid_terms_version"
|
||||||
|
+ " , prs_perslid_timezone_offset"
|
||||||
+ " FROM prs_perslid p"
|
+ " FROM prs_perslid p"
|
||||||
+ " WHERE p.prs_perslid_key = " + this._prs_perslid_key
|
+ " WHERE p.prs_perslid_key = " + this._prs_perslid_key
|
||||||
var oRs = Oracle.Execute(sql);
|
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_wachtwoord_exp = new Date(oRs("prs_perslid_wachtwoord_exp").Value);
|
||||||
this._prs_perslid_apikey = oRs("prs_perslid_apikey").value;
|
this._prs_perslid_apikey = oRs("prs_perslid_apikey").value;
|
||||||
this._prs_perslid_terms_version = oRs("prs_perslid_terms_version").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)
|
if (this._prs_perslid_options)
|
||||||
{
|
{
|
||||||
@@ -507,6 +509,12 @@ Perslid.prototype.terms_version = function _terms_version()
|
|||||||
return this._prs_perslid_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
|
// Als de credentials zijn gewijzigd *nadat* je bent ingelogd
|
||||||
// gaan we moeilijk doen (vanuit common.inc)
|
// gaan we moeilijk doen (vanuit common.inc)
|
||||||
Perslid.prototype.credentials_changed = function _credentials_changed()
|
Perslid.prototype.credentials_changed = function _credentials_changed()
|
||||||
|
|||||||
Reference in New Issue
Block a user