У меня есть этот код, чтобы вычислить возраст пользователя:JS Date() возвращает NaN, даже с ToString()
// Get today's date
var today = new Date();
var dd = today . getDate();
var mm = today . getMonth() + 1;
var yyyy = today . getFullYear();
if(dd < 10) {
dd = '0' + dd;
}
if(mm < 10) {
mm = '0' + mm;
}
/*
* Calculate the age in days
*/
var minimum_age_in_days = 6574;
var date_of_birth_formatted = new Date(year + '/' + month + '/' + day);
today = yyyy + '/' + mm + '/' + dd;
var difference = today - date_of_birth_formatted;
var difference_in_days = difference/100/60/60/24/10;
console . log(difference) . toString();
console . log(difference_in_days) . toString();
if(difference_in_days < minimum_age_in_days) {
$("#formModal") . show();
$("#overlay") . hide();
alert("You're not 18 years old");
}
else {
// Hide first modal
$("#formModal") . hide();
// Show second modal
$("#overlay") . show();
}
В двух console.log() 's возвращение NaN
, в то время как я имею попробовал преобразовать их в строки, чтобы я мог выполнить оператор if(). Однако, поскольку эти переменные (difference
& difference_in_days
) имеют значение NaN
, поэтому код не работает. Как я могу преобразовать эти значения, поэтому код не сломается?
Действительно ли вы размещаете пробелы между объектами, '.' и методом? : S В любом случае, я подозреваю, что вы делаете 'var today = new Date(); console.log (сегодня); 'вы увидите нормальный вывод. – pay
Возможно, вы можете использовать момент для выполнения таких операций ... check 'MomentJs': http://momentjs.com/ – Hackerman
Несколько проблем здесь, вы не можете вычесть строки (следовательно,« NaN'). Оба они должны быть 'Date'. Вы также никогда не определяли «год», «месяц» или «день». –