Ответ 1
if (currentMonth < 10) { currentMonth = '0' + currentMonth; }
Как получить месяц с текущей даты в формате mm
? (т.е. "05" )
Это мой текущий код:
var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 1;
if (currentMonth < 10) { currentMonth = '0' + currentMonth; }
Альтернативный способ:
var currentMonth=('0'+(currentDate.getMonth()+1)).slice(-2)
Однострочное решение:
var currentMonth = (currentDate.getMonth() < 10 ? '0' : '') + currentDate.getMonth();
для даты:
("0" + this.getDate()).slice(-2)
и аналогичный за месяц:
("0" + (this.getMonth() + 1)).slice(-2)
Версия ES6, созданная Гертом Гренандером
let date = new Date();
let month = date.getMonth()+1;
month = '0${month}'.slice(-2);
Если вы сделаете это
var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 1;
то currentMonth - это число, которое вы можете отформатировать так, как хотите, посмотрите на этот вопрос, который поможет вам в форматировании: Как я могу отформатировать целое число до определенной длины в javascript?
Чтобы принятый ответ возвращал строку последовательно, это должно быть:
if(currentMonth < 10) {
currentMonth = '0' + currentMonth;
} else {
currentMonth = '' + currentMonth;
}
Или:
currentMonth = (currentMonth < 10 ? '0' : '') + currentMonth;
Просто для funsies, здесь версия без условного:
currentMonth = ('0' + currentMonth).slice(-2);
Изменить: переключится на slice
, на Gert G ответ, кредит, в котором должен быть кредит; substr
тоже работает, я не понял, что он принимает отрицательный аргумент start
var CurrentDate = new Date();
CurrentDate.setMonth(CurrentDate.getMonth());
var day = CurrentDate.getDate();
var monthIndex = CurrentDate.getMonth()+1;
if(monthIndex<10){
monthIndex=('0'+monthIndex);
}
var year = CurrentDate.getFullYear();
alert(monthIndex);