Javascript - 在输入日期添加30天

时间:2017-11-23 05:35:33

标签: javascript date input

我似乎无法找到最近的任何内容,而且我可能会落后于时代,我只是在寻找错误的条款,所以我希望这里有人可以提供帮助,或者可能会有一些建议。

我有两个日期字段,一个是发票日期,另一个是截止日期。我想要发生的是我在发票日期选择或更改日期,到期日自动更新以反映发票日期后30天的日期。

<input id="dateInvoice" type="date"/>
<input id="dueDate" type="date"/>

3 个答案:

答案 0 :(得分:1)

您可以在Javascript中创建日期

var date = new Date(2017,11,27,11,14,00,00)

您可以在此日期添加30天以获取日期(30天后)

after30days = date.setDate(cur.getDate() + 30);

答案 1 :(得分:1)

您可以遵循此方法

  • 使用split日期构造函数
  • 将输入日期值解析为日期
  • 使用setDate
  • 添加天数
  • 将新日期值设置为输出日期。

<强>演示

document.querySelector("#addDays").addEventListener("click", function() {
  var invoiceDate = document.querySelector("#invoiceDate").value;
  var days = Number(document.querySelector("#days").value);
  var dueDateElement = document.querySelector("#dueDate");

  if (!isNaN(days) && invoiceDate.length) {
    invoiceDate = invoiceDate.split("-");
    invoiceDate = new Date(invoiceDate[0], invoiceDate[1] - 1, invoiceDate[2]);
    invoiceDate.setDate(invoiceDate.getDate() + days);
    dueDateElement.valueAsDate = null;
    dueDateElement.valueAsDate = invoiceDate;
    //console.log(invoiceDate, dueDateElement.value);
  }
});
Invoice Date <input type="date" id="invoiceDate"> <br><br> Add Days <input type="text" id="days"> <br><br>

<button id="addDays">Add Days</button> <br><br> Due Date <input type="date" id="dueDate">

答案 2 :(得分:0)

您可以将javascript日期拆分为月份日和年份,并为其添加简单月份 如

var invoiceDate = new Date("01/31/2017");
var dueDate= invoiceDate.addMonths(1);