我剛剛完成並測試了JavaScript的倒計時函數,並且我的變量以NaN形式返回。它比我通常寫的腳本長,所以我可能無法找到愚蠢的錯誤。
作爲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!");
我經常在大塊代碼中發現錯誤。我使用了一種叫做**調試器**的東西。它有很多幫助。你應該試試。 –