我最近遇到一個問題,...確定當DST生效
可以說我有一些JavaScript這樣的,例如:
var timezone = -(new Date()).getTimezoneOffset()/60; // Get the TZ offset
var local = [];
var gmt = [];
for(var i = 0; i <= 23; i++) // Loop through each hour
{
local.push(i);
var time = (i + timezone);
if(time == 24)
time = 0;
gmt.push(time);
}
這工作完全不同時,在DST ,但是當DST惡有惡報我有意想不到的效果,如這樣的:(本地用戶是GMT/DST)
> console.log(local);
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
> console.log(gmt);
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0]
當兩個數組應該是相同的。
如何檢測夏令時是否生效?
考慮到您正在使用的算法,結果似乎完全正確。它應該每天工作,除了穿越夏令時邊界時。也許你可以解釋你遇到的問題。 – 2013-04-07 16:51:34
您的意思是當地時區是GMT/BST(與WET/WEST相同),是嗎? – 2013-04-07 16:51:50
問題是應用程序應該檢測何時BST有效,並基本上將GMT更改爲BST @TomBlodget – 2013-04-07 17:24:29