在javascript中获得连续三个月的第一天和最后一天

时间:2013-11-16 10:35:07

标签: javascript

我希望从 当前蛾开始,向开始连续三个月 的第一个日期和最后日期,即。如果当前月份是11月,我的产量将是11月的第一个和最后一个,接着是10月的第一个和最后一个日期,接着是9月的第一个和最后一个日期。我编写的代码如下:

<script type="text/javascript">
  function calculatingMonthRange(){
    console.log('calculatingMonthRange() got called');
    var date = new Date();
    var currdate=date;

     for(i=1;i<=3;i++){
         var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
         var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
         console.log('FirstDay='+firstDay+' LastDay='+lastDay+"\n");
         date.setDate(currdate.getDate()-(30*i));
     }
 }
</script>

这是我得到的输出:::

FirstDay=Fri Nov 01 2013 00:00:00 GMT+0530 (India Standard Time) LastDay=Sat Nov 30  2013 00:00:00 GMT+0530 (India Standard Time)

FirstDay=Tue Oct 01 2013 00:00:00 GMT+0530 (India Standard Time) LastDay=Thu Oct 31 2013 00:00:00 GMT+0530 (India Standard Time)

FirstDay=Thu Aug 01 2013 00:00:00 GMT+0530 (India Standard Time) LastDay=Sat Aug 31 2013 00:00:00 GMT+0530 (India Standard Time)

9月的月份在哪里?为什么打印8月而不是9月?????

1 个答案:

答案 0 :(得分:0)

这有效:

  function calculatingMonthRange(){
    console.log('calculatingMonthRange() got called');
    var date = new Date();
    var currdate=date;

     for(i=1;i<=3;i++){
         var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
         var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
         console.log('FirstDay='+firstDay+' LastDay='+lastDay+"\n");
         date = new Date(date.getFullYear(), date.getMonth() - 1, 1);
     }
  }

您可以在此处使用代码:http://jsbin.com/uPaVOXI/1/edit?js,console