JavaScript代码搞乱日期

时间:2013-12-25 14:56:57

标签: javascript datetime time

我已经实现了一个简单的javascript代码,它在我的页面上显示日期。问题是,它设定在1个月前。今天(25/12)它显示25/11。你能帮我找到问题吗,因为我对JS仍有非常基本的了解,并按照教程创建了这个脚本。谢谢。

<script>
function renderDate() {
    var today = new Date();
    var d = today.getDate();
    var m = today.getMonth();
    var y = today.getFullYear();
    d = checkTime(d);
    m = checkTime(m);
    document.getElementById('dateid').innerHTML = d + "/" + m + "<br> <b>" + y + "</b>";
    t = setTimeout (function() {renderTime()}, 500);
}

function checkTime(i) {
    if (i<10)
    {
        i = "0" + i;
    }
    return i;
}
</script>

3 个答案:

答案 0 :(得分:1)

月份在Javascript中从零开始,因此1月份为0,2月份为1,依此类推,直到12月份为11级。只需向today.getMonth()添加1,您就可以了。您的新代码将是

<script>
function renderDate() {
    var today = new Date();
    var d = today.getDate();
    var m = today.getMonth()+1;  //Month Increment
    var y = today.getFullYear();
    d = checkTime(d);
    m = checkTime(m);
    document.getElementById('dateid').innerHTML = d + "/" + m + "<br> <b>" + y + "</b>";
    t = setTimeout (function() {renderTime()}, 500);
}

function checkTime(i) {
    if (i<10)
    {
        i = "0" + i;
    }
    return i;
}
</script>

答案 1 :(得分:0)

月份从零开始

替换

var m = today.getMonth()

var m = today.getMonth()+1

答案 2 :(得分:0)

很容易理解你,我想:) 这是因为Date.prototype.getMonth()返回0-11,表示月份1 - 12

检查docs