我正在使用打字稿(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);
我的问题是为什么会这样?任何想法?还有其他解决方法吗?
答案 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