Javascript设置时间(1)2011年3月27日格林尼治标准时间01:00:00+;0100
我完全搞不懂为什么这样不行 我迭代了一个日期范围,一步一步地增加1小时。直到本周为止,这一切都很顺利。基本上直到日期达到2011年3月27日01:00:00 GMT+0100。然后,它只是阻塞,没有添加任何内容。如果我加上+3h,它会再次起作用,但不加+1 我在Firefox上使用Firebug,并在控制台上进行了尝试Javascript设置时间(1)2011年3月27日格林尼治标准时间01:00:00+;0100,javascript,date,Javascript,Date,我完全搞不懂为什么这样不行 我迭代了一个日期范围,一步一步地增加1小时。直到本周为止,这一切都很顺利。基本上直到日期达到2011年3月27日01:00:00 GMT+0100。然后,它只是阻塞,没有添加任何内容。如果我加上+3h,它会再次起作用,但不加+1 我在Firefox上使用Firebug,并在控制台上进行了尝试 Sun Mar 27 2011 01:00:00 GMT+0100 >>> this.setHours(0); 1301180400000 >>&
Sun Mar 27 2011 01:00:00 GMT+0100
>>> this.setHours(0);
1301180400000
>>> this.setHours(1);
1301184000000
>>> this.setHours(2);
1301184000000
>>> this.setHours(3);
1301187600000
代码如下:
Date.prototype.addHours = function (h) {
this.setHours(this.getHours() + h);
return this;
}
我在Safari和Chrome中也有同样的bug 导致此行为的夏令时。 3月27日是DST开始的日子 编辑:
希望这能解决您的问题:只是一个猜测:这可能与夏令时有关吗?我遇到了与您相同的问题,并用
Date.prototype.addHours = function (h) {
this = new Date(this.getTime() + h*3600000);
return this;
}
我不确定创建一个新的日期对象是否是一个好主意,但它对我来说很有效 我知道这个问题已经很老了,但如果其他人遇到这个问题,使用UTC方法,您可以避免这种行为:
Date.prototype.addHours = function (h) {
this.setUTCHours(this.getUTCHours() + h);
return this;
}
有时它被称为“夏季”。事物转换的日期因国家而异(有时甚至在政治粒度上更精细)。啊哈,好的。我该怎么办?如果可能的话,我想保留我的递增计数器。谢谢你的编辑。我想我可以在每个环路中检查夏令时。但希望能找到更简单的方法。