如果月份没有日期,则在获取年份日期时缺少月份

时间:2015-12-31 03:06:03

标签: javascript jquery datetime

我想在提供日期之后用下面的代码

来获取明年的日期
var dateArray = new Array();
dateArray.push(date);
for(var i=1;i<12;i++){
    dateArray.push(new Date(date.getFullYear(),date.getMonth()+i,date.getDate()));
}
console.log(dateArray)

如果我在1-28之间选择日期,但是当我选择任何即将到来的月份没有的日期时它会移动到下个月,这是正常的。

这里应该发生的是我应该获得所选日期不可用的月份的最后日期

2 个答案:

答案 0 :(得分:3)

Date对象类型通过递增月份来处理当月的溢出,正如您所说的那样。要执行您想要的操作,您需要添加if语句来检查日期是否正确,如果不是,则需要修复它。

&#13;
&#13;
var date = new Date(2015, 2, 30);

var dateArray = new Array();
dateArray.push(date);
for (var i = 1; i < 12; i++) {
  dateArray.push(new Date(date.getFullYear(), date.getMonth() + i, date.getDate()));

  // check if the day of the month is correct.
  // If it isn't, we know that it overflowed into the next month
  if(dateArray[i].getDate() !== date.getDate()) {
    // setting the day to 0 will set it to the last day of the previous month
    dateArray[i].setDate(0);
  }

}
console.log(dateArray)
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果你想在特定的月份和年份的最后一天收集

function daysInMonth (month,year) {    
    return new Date(year, month+1, 0).getDate();
};