Я просто заканчивал и тестировал функцию обратного отсчета для 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!");
Я часто нахожу ошибки в больших кусках кода. Я использую что-то, называемое ** отладчиком **. Это помогает. Тебе следует это попробовать. –