当天数超过月份时,.getMonth()和.setDate无法正常工作

时间:2016-04-17 13:31:01

标签: javascript jquery html5

晚上好。我有这个,一半制作,一半复制的功能,理论上应该采取一个理想的日期,并在未来7天将它附加到一个div中:

//GLOBAL VARIABLES
var startDate = new Date();
var nextDate = new Date();
var prevDate = new Date();

function GetDates(tDate) {
    var aryDates = [];
    $("#calendar").empty();
    for(var i = 0; i <= 7; i++) {
        var currentDate = new Date();
        currentDate.setDate(tDate.getDate() + i);
        $("#calendar").append("<div class='calendar-day'><p class='weekday'>"+DayAsString(currentDate.getDay())+"</p><p class='day'>"+currentDate.getDate()+"</p><p class='month'>"+MonthAsString(currentDate.getMonth())+"</p><p class='daytime'>Rano</p><p class='daytime'>Popołudnie</p><p class='daytime'>Wieczór</p></div>");
    }

    nextDate.setDate(tDate.getDate() + 7); //THIS CAUSES THE PROBLEM
    prevDate.setDate(tDate.getDate() - 7); //THIS CAUSES THE PROBLEM

    console.log("Next Date: " + nextDate);
    console.log("Previous Date: " + prevDate);
}

从jquery文件准备好了:

$(document).ready(function(){
    GetDates(startDate); wartosciami od dnia dzisiejszego
    var navright = $(".calendar-nav-right");
    var navleft = $(".calendar-nav-left");
    navright.on("click", function(){GetDates(nextDate);});
    navleft.on("click", function(){GetDates(prevDate);});
    //console.log(aryDates); 
});

问题在于具有注释的两个setDate行。它的工作完全正常,直到结果可能超出特定的日历月(即,如果结果是> 30,它将会变得疯狂)。 在当前设置中,如果我单击导航按钮导致日历前进几次,并打印&#34; nextDate&#34;它显示了正确的日期,但日期本身将按此顺序排列:

  1. 17april,18april,19april,20april,21april,22april,23april
  2. 24april,25april,26april,27april,28april,29april,30april
  3. 1april,2april,3april,4april,5april,6april,7april
  4. 它转移到另一个月的唯一时刻就是它在途中的火灾,就像这样:

    • 28april,29april,30april,1may,2may,3may,4may

    当我开始混合下一个和上一个日历时,它会更加混乱起始日期。

    我现在已经在这里待了3个小时,但却无法找到让它正常工作的方法。 可以在选项卡&#34; 2)Wybierz Date&#34;

    下找到错误HERE

    对此主题的任何帮助都将非常感激

0 个答案:

没有答案