Merge pull request #3621 from h0rmiga/fix/dst-detection-3607
Fix DST detection
This commit is contained in:
commit
74530b23e0
|
@ -10,25 +10,11 @@
|
||||||
* @returns {Number}
|
* @returns {Number}
|
||||||
*/
|
*/
|
||||||
Date.prototype.getStdTimezoneOffset = function() {
|
Date.prototype.getStdTimezoneOffset = function() {
|
||||||
if (Date.maxTimezoneOffset !== undefined) {
|
var year = new Date().getFullYear();
|
||||||
return Date.maxTimezoneOffset;
|
var offsetInJanuary = new Date(year, 0, 2).getTimezoneOffset();
|
||||||
}
|
var offsetInJune = new Date(year, 5, 2).getTimezoneOffset();
|
||||||
|
|
||||||
var year = new Date().getYear();
|
return Math.max(offsetInJanuary, offsetInJune);
|
||||||
var previousOffset;
|
|
||||||
|
|
||||||
for (var i=0; i<12; i++) {
|
|
||||||
var d = new Date(year, i, 1);
|
|
||||||
if (previousOffset !== undefined) {
|
|
||||||
previousOffset = Math.max(previousOffset, d.getTimezoneOffset());
|
|
||||||
} else {
|
|
||||||
previousOffset = d.getTimezoneOffset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Date.maxTimezoneOffset = previousOffset;
|
|
||||||
|
|
||||||
return Date.maxTimezoneOffset;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +23,7 @@
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
Date.prototype.isDst = function() {
|
Date.prototype.isDst = function() {
|
||||||
return (this.getStdTimezoneOffset() === this.getTimezoneOffset()) ? false : true;
|
return this.getStdTimezoneOffset() !== this.getTimezoneOffset();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue