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

时间:2018-08-15 15:01:46

标签: javascript angular typescript date angular5

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

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

我期望结果为“星期五2018年8月17日14:00:00 GMT-0400(东部夏令时)”,但这实际上是它返回的内容:

  

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

如您所见,它为日期添加了一个月。我已经通过减去以下代码修复了该问题:

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

我的问题是为什么会这样?任何想法?还有其他解决方法吗?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

Javascript日期对象从0开始数月

来自“ W3Schools”

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

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

因此只需设置7而不是8