我正在尝试使用以下代码在提供日期之后获取明年的日期

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之间,则效果很好,但是当我选择对下个月不可用的任何日期时,它将移至下个月。

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

最佳答案

正如您所说,Date对象类型通过增加月份来处理月份中的一天。要执行所需的操作,您需要添加if语句,以检查日期是否正确,如果不正确,则对其进行修复。



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)

关于javascript - 如果月份中没有可用的日期,则缺少年份中的月份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34540456/

10-09 18:36