以下是代码:
var date = new Date(annee, mois, jour);
var i = 0;
while (i < 365) {
date.setTime(date.getTime()-(1000*60*60*24*i));
console.log(date.getFullYear()+'/'+parseInt(date.getMonth()+1)+'/'+date.getDate());
i++;
}
我试图在每个循环中减去1天,但我得到了这个:
2016/1/13
2016/1/11
2016/1/8
2016/1/4
2015/12/30
2015/12/24
2015/12/17
2015/12/9
2015/11/30
2015/11/20
[...]
1834/2/27
在快速查看了堆栈的解决方案之后,我发现了这个问题:Finding date by subtracting X number of days from a particular date in Javascript但结果却是一堆虚假的日子......
我尝试getDate()-days
,setTime(getTime()-(different ms calculs))
- ,如代码 - 尝试使用utc gmt和iso ...
好吧......希望有人可以帮助我:/谢谢!
答案 0 :(得分:1)
删除i的乘法。它减去了我的日子。
var date = new Date(annee, mois, jour);
var i = 0;
while (i < 365) {
date.setTime(date.getTime()-(1000*60*60*24)); //removed *i
console.log(date.getFullYear()+'/'+parseInt(date.getMonth()+1)+'/'+date.getDate());
i++;
}
答案 1 :(得分:0)
日期真的很难。即使它看起来像一个简单的计算,如果日期是本月的第一天会发生什么 - 你会期望日期回滚到上个月吗?如果是一年的第一天怎么办?还是3月1日,这是闰年?
我建议将此类任务推迟到http://momentjs.com/或http://sugarjs.com/dates等库中。