【发布时间】:2017-01-03 23:00:06
【问题描述】:
这仅发生在 setMonth() 方法中,其他 set*() 方法均不发生。
这是我的意思的一个例子:
var date = new Date();
date.getTimezoneOffset(); // -60
date.setMonth(5);
date.getTimezoneOffset(); // -120
【问题讨论】:
-
您可能正在跨越夏令时边界。
-
使用原始 Javascript 日期代码是灾难的根源。 Moment.js 是行业标准,但也有其他不错的日期库。使用 Moment 或其他库而不是尝试使用基本的 JS 日期内容会更好,因为它有很多问题。
-
@machineghost——这是一个无法证实的非常黑暗的观点。 Moment.js 不能帮助 OP 解决这个问题。
-
JavaScript 不正确地处理 UTC 偏移量。这是在标准中。 ecma-international.org/ecma-262/5.1/#sec-15.9.1.8
-
@RobG 可能很黑,但这是许多有经验的 JS 开发人员共享的观点;只需在 Google 上搜索“为什么使用 moment”之类的内容,您就会看到大量页面显示“原生 JS 日期解析并不是世界上最糟糕的事情,但 Moment 好多了”。至于 Moment.js 没有帮助 OP:stackoverflow.com/questions/34838542/…
标签: javascript