TypeError:* .getMonth不是函数

时间:2014-03-14 20:15:14

标签: javascript jquery datepicker

我正在尝试构建一个javascript函数,该函数将自动填充日历的14天,日期最后一个日期由datepicker选择。到目前为止,我的代码是:

function filldates() {

datepicked = document.getElementById("period-ending").value;
s = datepicked.split('/');
enddate = new Date(s[2], s[0], s[1]);
date1 = enddate.setDate(enddate.getDate()-14);
day1 = date1.getMonth() + 1;
month1 = date1.getDate();
var firstday = day1 + '/' + month1;
document.getElementById("date-1").value = firstday;
}

然而,开发人员的控制台一直告诉我date1.getMonth不是一个函数。我很困惑,因为我一直在研究的所有教程和示例都基于以下内容:“var today = new Date(); var month = today.getMonth()+ 1;”

这是一个实施问题吗?

1 个答案:

答案 0 :(得分:11)

setDate()函数会改变其上下文日期。它不会返回新的Date实例。

如果您想要创建一个比另一个更早几天的新日期实例:

function daysAfter(d, days) {
  var nd = new Date(d.getTime());
  nd.setDate(d.getDate() + days);
  return nd;
}

然后,如果你有一个约会,你可以在14天之后创建一个日期:

var someDate = ... whatever ... ;
var fourteenDaysAfter = daysAfter(someDate, 14);

然后,您可以使用.getMonth().getDate()访问者执行您想要的任何格式设置。请记住,JavaScript中的月份从零开始编号。

编辑日期之前日期只传递一个负数。