我正在使用打字稿(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