首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MomentJS添加月份

使用MomentJS添加月份
EN

Stack Overflow用户
提问于 2015-10-28 15:11:02
回答 1查看 516关注 0票数 0

我想用MomentJS给我的MomentJS增加一个月,但它似乎不适用于几天.

我想留一天加一个月。

我想要这个:

  1. 2015年10月30日
  2. 2015年11月30日
  3. 2015年12月30日
  4. 2016年1月30日
  5. 2016年2月29日( 30不在月份的最后一天)
  6. 2016年3月30日

守则:

currentDueDate.add(1, 'M');

我明白了:

  1. 2015年10月30日
  2. 2015年11月30日
  3. 2015年12月30日
  4. 2016年1月30日
  5. 2016年2月29日
  6. 2016年3月29日(应为2016年3月30日)

编辑(整个代码):

代码语言:javascript
复制
  <!-- Calculs -->

  <% var currentDueDate = moment(agreement.billbook.first_due_date) || moment(); %>

  <% var nbLines = 6; %>
  <% var monthToAdd = 1; %>

  <!-- /Calculs -->

  <table class="table">        

    <% for(var i = 0; i < nbLines; i++ ){ %>

    <tr>
      <td><%=i+1%></td>
      <td><%=currentDueDate.format('L')%></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>

    <% currentDueDate.add(monthToAdd, 'M'); %>

    <% } %>

  </table>
EN

回答 1

Stack Overflow用户

发布于 2015-10-28 15:34:48

显然,日期与天293031是角落的例子。此外,对于31日,还有一个角落的情况,因为所有月份都没有31天。我建议的是有三个functions来涵盖所有的场景:

代码语言:javascript
复制
1) dateWith31
2) dateWith29And30
3) dateWithRest - has the same flow what you have wrote

switch currentDueDate.get('date') :
  case 31 :
    dateWith31(currentDueDate)
  case 30 :
    dateWith29And30(currentDueDate)
  case 29 :
    dateWith29And30(currentDueDate)
  default :
    dateWithRest(currentDueDate)



function dateWith31(currentDueDate){
  for(var i = 0; i < nbLines; i++ ){
    currentDueDate.add(1,'M').endOf('M');
  }
}

function dateWith29And30(currentDueDate){
  var temp = currentDueDate.get('date');  //stores the original day
  for(var i = 0; i < nbLines; i++ ){
    var prevMonth = currentDueDate.get('M');
    if(prevMonth === 1) //date has been changed in February and hence fix it
      currentDueDate.add(1,'M').set('date',temp);
    else
      currentDueDate.add(1,'M');
  }
}

希望它可以用您正在使用的语言实现(我猜是PHP)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33394741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档