Я создаю сценарий для ввода даты в какое-то конкретное поле, требуемый формат - MMM DD, YYYY, поскольку вы можете видеть, что формат имеет 2 пробела: один между названием месяца и датой, а другой между запятой и годом. Я искал так много мест и пробовал код ниже, но он возвращает значение как NaN, 2018 г., мой код указан ниже -
this.getCurrentDate = function () {
var d = new Date();
var currentDate = d.getDate();
var currentMonth = d.getMonth()+1;
var currentYear = d.getFullYear();
if (currentDate < 10){
currentDate = '0'+currentDate;
}
if (currentMonth < 10){
currentMonth = '0'+currentMonth;
}
var today = currentMonth + '\xa0' + currentDate-1 + ',' + '\xa0' + currentYear;
console.info(today);
return today;
};



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваша проблема связана с этой строкой кода:
var today = currentMonth + '\xa0' + currentDate-1 + ',' + '\xa0' + currentYear;
Итак, ранее вы установили эти две переменные в строки:
if (currentDate < 10){
currentDate = '0'+currentDate;
}
if (currentMonth < 10){
currentMonth = '0'+currentMonth;
}
В переменной today в currentDate вы пытаетесь вычесть целое число 1 из строки. Следовательно, NaN (не число).
Не волнуйся, рад, что смог помочь. :)
Вы вычитаете 1 из строки, которая вызывает ошибку.
this.getCurrentDate = function () {
var d = new Date();
var currentDate = d.getDate();
var currentMonth = d.getMonth()+1;
var currentYear = d.getFullYear();
if (currentDate < 10){
currentDate = '0'+currentDate;
}
if (currentMonth < 10){
currentDate--; //Fixed here.
currentMonth = '0'+currentMonth;
} //removed -1 from current date
var today = currentMonth + '\xa0' + currentDate + ',' + '\xa0' + currentYear;
console.info(today);
return today;
};
Вы должны вычесть значение из числа, прежде чем преобразовать его в строку. Теперь это будет работать.
Это не будет работать круглый год, если вы не вычитаете 11-й месяц из числа. Лично я бы сделал отдельные функции для выполнения вашей логики, а затем вернул бы строку, которую вы можете просто вызвать в функции getCurrentDate и вернуть дату в виде строки.
Привет, Майк, да, я уже исправляю эту вещь, обязательно опубликую здесь в ответ, как только закончу.
Спасибо, исправили.