Следующие верны 11, которые верны.
var month = d.getMonth();
alert(month);
Когда я пытаюсь добавить месяц, он возвращает что-то совсем другое
var month = d.setMonth(d.getMonth() + 1);
alert(month);
Он возвращает: 1513230546878
Возвращаемые значения методов, которые вы используете в вашем коде, следующие
d.getMonth()
- число, от 0 до 11, представляющее месяц (ссылка)d.setMonth()
- A Число, представляющее число миллисекунд между объектом даты и полночь 1 января 1970 г. (ссылка) Обратите внимание: d.setMonth()
изменит ваш объект Date
на месте. Итак, если вы хотите, чтобы ваш код работал должным образом, вы можете написать следующее
var d = new Date()
var month = d.getMonth();
alert(month);
d.setMonth(d.getMonth() + 1);
alert(d.getMonth());
d.setMonth()
возвращает обновленное значение временной метки (см. документы). Вот почему вы получили длинный номер.
Если вы хотите получить месяц, который вы будете использовать, как указано ниже
var d = new Date("2017-10-03");
d.setMonth(d.getMonth() + 1);
var month = d.getMonth(); // get new month
alert(month);
Надеюсь, поможет
В java-скрипте, если вы пишете это:
var month = d.setMonth(d.getMonth() + 1);
Вы получаете временную метку. Значение - целое число, представляющее месяц, который вы выбрали.
Это связано с тем, что setDate принимает параметр dayValue:
Date.setDate(dayValue)
Означающий, что:
var dt = new Date("Aug 28, 2008 23:30:00");
dt.setDate(24);
console.log(dt);
приведет к:
Sun Aug 24 2008 23:30:00 //+ your standard gmt time
Для получения дополнительной информации см. Ссылку
//set date to now:
var d = new Date();
console.log(d);
//just checking
var month = d.getMonth();
console.log(month);
//add a month
d.setMonth(d.getMonth() + 1);
//now the month is one ahead:
console.log(d.getMonth());
console.log(d);
timestamp
. Если вы хотите месяц, просто выполнитеd.getMonth()
снова.var month = d.getMonth()+1;
, (хотя в итоге вы получите 12, когда предположительно диапазон месяцев от 0 до 11).