【问题标题】:Javascript calendar won't show current day+monthJavascript日历不会显示当前日期+月份
【发布时间】:2014-11-03 04:43:36
【问题描述】:

我正在用 javascript 制作日历,我不想在 <div id=taken> 中显示当前日期、日期名称和月份名称,它在我的函数 Kalender() 中,但由于某种原因,如果我执行函数 @987654323 @(下个月)它改变了 <div id=taken> 中的月份,这不是当前的日期和月份我该如何解决这个问题?

var dayNames = ['Zon', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    //Volledige Dagnamen//
    var dayNamesFull = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'];
    //Volledige Maandnamen//
    var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'Oktober', 'November', 'December'];
    //Maand lengte van 0 - 11//
    var monthLength = [31,28,31,30,31,30,31,31,30,31,30,31]; 
    //Nieuwe datum//
    var today = new Date();
    //Vandaag//
    var day = today.getDay();
    //vandaag zoekmaand//
    var month = today.getMonth();
    //vandaag//
    var vandaag = today.getDate();
    //volledig jaar//
    var year = today.getFullYear();

//Kalender schrijf functie//    
function Kalender() {
   var buttons = '<button id="vorige" onclick="vorige()">Vorige</button><button id="volgende" onclick="volgende()">Volgende</button>'
   var kalender = "";

document.getElementById('Header').innerHTML = monthNames[month]+" "+year+buttons;
    kalender += '<table id="cal"><div id="taken"></div>';   

        for (var j = 1; j <= monthLength[month]; j++) {
            if (vandaag == j ) {
                kalender +="<td id='tabeldagen' class='dagVandaag'>"+j; 
                }
                else {
                    kalender += "<td id='tabeldagen'>"+j; 
                } 

                    if (j % 7 == 0) {
                kalender += "<tr>";
            }
            kalender += '</td>';
        }

    kalender += '</table>';
    document.getElementById('kalen').innerHTML = kalender;
            document.getElementById('taken').innerHTML += dayNamesFull[day]+" "+vandaag+" "+monthNames[month];

    }
//Leap Year//
    if (month == 1) {
        if (year % 4 == 0) {
            monthLength = 29;
    }

}





//Volgende Maand functie//
function volgende() {
month = month + 1;
    if(month > 11) {
        month = -1;
        month = month + 1;
        year = year + 1;
    } 
        Kalender();
    }
//Vorige maand functie//
function vorige() {
    month = month - 1;
    if(month < 0) {
        month = + 12;
        month = month - 1;
        year = year - 1;
    } 
    Kalender();
}

HTML:

<!DOCTYPE html>
<head>
    <title>Kalender</title>
    <link type="text/css" rel="stylesheet" href="kalender.css"> 

</head>
<body onload="Kalender()">
    <div id="kalender"> 
            <div id="Header">
            </div>
        <div id="kalen">
        </div>
    </div>
    <script type="text/javascript" src="Kalender.js"></script> 
</body>
</html> 

【问题讨论】:

    标签: javascript calendar


    【解决方案1】:

    问题是您更改了函数volgende()vorige() 中的daymonth 变量。尝试为当前日期和月份添加其他变量:

    //Vandaag//
    var day = today.getDay();
    var currentDay = day;
    //vandaag zoekmaand//
    var month = today.getMonth();
    var currentMonth= month;
    

    并在taken 元素中使用它们:

            document.getElementById('taken').innerHTML += dayNamesFull[currentDay]+" "+vandaag+" "+monthNames[currentMonth];
    

    【讨论】:

    • 成功了!大声笑我现在觉得自己很愚蠢,因为我没有自己想出这个。我想尊重你的回答,但我只有 13 个代表 :(
    • 不客气!有时真的很难在自己的代码中看到小错误,因为它看起来太熟悉了)
    猜你喜欢
    • 2013-07-23
    • 2016-11-29
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多