我最近遇到一个问题...
假设我有一些这样的 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]
两个数组应该相同的地方。
我如何检测夏令时何时生效?