Javascript生成日期

时间:2017-10-10 15:27:51

标签: typescript

我需要根据select元素中的用户选择生成和开始,结束和截止日期,该元素有3个选项1,2和3个月,这里的想法是创建一个循环,它将生成和对象与这3个日期的开始,结束和截止日期,但是对于每次迭代,这些日期大多数会根据用户选择的内容增加1,2或3个月。

示例:

用户选择1个月,迭代次数将为3 所以对象最看起来:

Object 1:
start_date: 2017/10/31
end_date: 2017/11/30

Object 2:
start_date: 2017/11/30
end_date: 2017/12/31

Object 3:
start_date: 2017/12/31
end_date: 2018/01/31

这是功能:

  public DatesGenerator(futercampaign: ICampaign, searchparam: any, i: number): ICampaign {
    let num: number;
    let month: number;
    let tempDate: Date;
    let deadline: Date = new Date(searchparam.start_date);
    let periodicity: Date = new Date(searchparam.start_date);
    if (searchparam.periodicity === 'onemonth') { num = (i * 1); month = 1; } else if (searchparam.periodicity === 'twomonth') { num = (i * 2); month = 2; } else if (searchparam.periodicity === 'threemonth') { num = (i * 3); month = 3; }

      futercampaign.start_date = new Date(periodicity.setMonth(periodicity.getMonth() + num));

      /* Storing the start_date temporarily */
      tempDate = new Date(futercampaign.start_date);

      /* Calculating the End Date */
      futercampaign.end_date = new Date(tempDate.setMonth(tempDate.getMonth() + month));
    /* Calculating the Deadline */
    futercampaign.deadline = new Date(tempDate.setDate(tempDate.getDate() - searchparam.deadline));

    return futercampaign;
  }

searchparam只是和对象保存用户选择,在这种情况下存储start_date和周期(1,2或3个月)。

我的问题是,当用户选择最后一天时,可以说是oct 31,而下个月也没有31天,在这种情况下,当月11月也会跳到12月31日。

0 个答案:

没有答案