2017-08-29 63 views
0

Javascript中的Date对象似乎有错误,它认为2017年4月31日是真实的一天。我从今天(8月29日)起,在90天前试图找到这个日期。以下是我的上下文代码片段:Javascript日期对象返回4月31日?

*编辑:对于上下文,这在技术上来自Google Apps脚本。

var now = new Date(); 
var ninetyDaysAgo = new Date(now.getTime() - 90 * 1000 * 60 * 60 * 24); 
var dateStr = ninetyDaysAgo.getFullYear() + '-' + 
       ninetyDaysAgo.getMonth() + '-' + 
       ninetyDaysAgo.getDate(); 
//If I print dateStr it's '2017-4-31' 

,因为我需要正确的日期使用API​​这是非常重要的。这只是日期课上的一件事,还是我错过了一些东西?

+1

5/31是5月31日?我想你可能会让你的几个月混在一起。 – axlj

+1

@axlj是的。 –

+0

嗯..我仔细检查了我的日志,我得到了4-31-17 ....让我用更多的代码更新帖子 – Alisa

回答

1

getMonth是从零开始的。所以你需要像下面这样使用它:

var dateStr = ninetyDaysAgo.getFullYear() + '-' + 
       (ninetyDaysAgo.getMonth() + 1) + '-' + 
       ninetyDaysAgo.getDate();