减去日期到目前为止的循环

时间:2016-01-14 11:07:36

标签: javascript date

以下是代码:

    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()-dayssetTime(getTime()-(different ms calculs)) - ,如代码 - 尝试使用utc gmt和iso ...

好吧......希望有人可以帮助我:/谢谢!

2 个答案:

答案 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等库中。