我有一个Bootstrap datepicker
,其中选择了日期。单击按钮New Date
后,在date
中选择的datepicker
应该增加一个月。
我有以下代码:
function getNewDate(){
var date = new Date();
date = $("#selectedDate").val();
// alert(date);
var newDate = new Date();
newDate = date.setMonth(date.getMonth()+1);
// alert(newDate);
}
但是,执行此操作时,出现以下错误:
未捕获的TypeError:date.getMonth不是函数
我要去哪里错了?
答案 0 :(得分:4)
jQuery .val()
返回一个字符串,然后必须对其进行解析。下面的代码假定它实际上是可以解析的格式。最好使用yyyy-mm-dd
。
此外,重要的是要知道date.setMonth(...)
会更改基础的date
对象。
还要注意,“不可能的日期”会延续到下个月,例如在来源日期date.setMonth(11)
进行2018-10-31
会导致“不可能的日期” 2018-11-31
,然后变成2018-12-01
。
演示:
function getNewDate() {
var str = $("#selectedDate").val(); // get string
console.log(str);
var date = new Date(str); // parse string
console.log(date);
date.setMonth(date.getMonth() + 1); // change date
console.log(date);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="selectedDate" value="2018-12-20" />
<button onclick="getNewDate()">Add month</button>