Javascript setHours(1) 不适用于 2011 年 3 月 27 日 01 :00:00 GMT+0100

标签 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
>>> 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 中有同样的错误。

最佳答案

导致此行为的夏令时。 3 月 27 日是 DST 开始的日子。

编辑:

希望这能解决您的问题:Daylight Saving in JavaScript

关于Javascript setHours(1) 不适用于 2011 年 3 月 27 日 01 :00:00 GMT+0100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5391177/

相关文章:

java - 无法将格式化字符串转换为 LocalDateTime

javascript - 如何确定我的 React Native 应用程序是从 JavaScript 代码构建的调试版本还是发布版本?

javascript - 这个函数会返回什么?空数组或对象数组

javascript - 我无法使用 JS 访问元素的可视位置

javascript - 悬停切换并单击无法正常工作

php - 每周两次约会 php

javascript - 如何在变量上添加 Action 事件?

用于格式化输入框以采用日期 mm/dd/yyyy 的 HTML5 模式?

sql - 无法从表格中获取正确的日期

python 我想用日期时间设置索引数据帧