值返回为NaN

h

我刚刚完成并测试了JavaScript的倒数功能,并且我的变量以NaN的形式返回。它比我通常编写的脚本长,所以我可能找不到愚蠢的错误。

var time = "";
var countdown = function (second, miniute, hour, day, month, year) {
    var x = new Date();
    var today = new Date();
    var s = second - 1;
    var m = miniute - 1;
    var h = hour - 1;
    var d = day - 1;
    var mo = month - 1;
    var y = year - 1;
    var monthdays;
    var daysInYear;
    var leap;
    var leapyear = y % 4;
    x.setFullYear(y, mo, d, h, m, s);
    if (m == 4) {
        monthdays = 30;
    }
    if (m == 6) {
        monthdays = 30;
    }
    if (m == 9) {
        monthdays = 30;
    }
    if (m == 11) {
        monthdays = 30;
    } else if (m == 2) {
        if (leapyear === 0) {
            monthdays = 29;
            leap = true;
        } else {
            monthdays = 28;
        }
    } else {
        monthdays = 31;
    }
    if (leap === true) {
        daysInYear = 366;
    } else {
        daysInYear = 366;
    }
    var seconds = Math.floor((x.getTime() - today.getTime()) / (1000));
    var minutes = Math.floor((x.getTime() - today.getTime()) / (1000 * 60));
    var hours = Math.floor((x.getTime() - today.getTime()) / (1000 * 60 * 60));
    var days = Math.floor((x.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));
    var months = Math.floor((x.getTime() - today.getTime()) / (1000 * 60 * 60 * 24 * monthdays));
    var years = Math.floor((x.getTime() - today.getTime()) / (1000 * 60 * 60 * 24 * monthdays * daysInYear));
    time = years + " Year(s), " + months + " Month(s), " + days + " Day(s), " + hours + " Hour(s), " + minutes + " Minute(s), and " + seconds + " Second(s). ";
};
countdown(0, 0, 25, 12, 2013);
alert(time + "'til christmas!");
橙狗
function (second, miniute, hour, day, month, year)
...
countdown(0, 0, 25, 12, 2013);

您仅传入了5个参数,所以year未定义,因此将其转换为数字时会给出NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章