Javascript Date 对象的构造函数提前一个月返回一个日期



我正在使用打字稿(Angular 5(,我有以下代码:

let date = new Date(2018, 8, 17, 14, 0);

我预计"星期五 Aug 17 2018 14:00:00 GMT-0400(东部夏令时间("作为结果,但这是它实际返回的内容:

2018年9月17日星期一 14:00:00 GMT-0400(东部夏令时间(

如您所见,它会在日期上添加一个月。我已经通过减去以下代码来修复它:

let date = new Date(2018, 8 - 1, 17, 14, 0);

我的问题是为什么会这样?知道吗?还有其他方法可以解决这个问题吗?

这与Angular无关,这只是JavaScriptDate的工作方式。月份是从零开始的:一月是0,十二月是11

Javascript Date 对象从 0 开始计数月份

来自"W3学校">

JavaScript 从 0 到 11 计算月份。一月是0。十二月是11。

https://www.w3schools.com/js/js_dates.asp

因此,只需设置7而不是8

相关内容

最新更新