我刚刚完成并测试了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] 删除。
我来说两句