Почему добавление месяца к объекту Date возвращает странное число?

1

Следующие верны 11, которые верны.

var month = d.getMonth();
alert(month);

Когда я пытаюсь добавить месяц, он возвращает что-то совсем другое

var month = d.setMonth(d.getMonth() + 1);
alert(month);

Он возвращает: 1513230546878

  • 2
    Это timestamp . Если вы хотите месяц, просто выполните d.getMonth() снова.
  • 0
    Просто используйте var month = d.getMonth()+1; , (хотя в итоге вы получите 12, когда предположительно диапазон месяцев от 0 до 11).
Показать ещё 2 комментария
Теги:

4 ответа

1
Лучший ответ

Возвращаемые значения методов, которые вы используете в вашем коде, следующие

  1. d.getMonth() - число, от 0 до 11, представляющее месяц (ссылка)
  2. 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());
0

d.setMonth() возвращает обновленное значение временной метки (см. документы). Вот почему вы получили длинный номер.

Если вы хотите получить месяц, который вы будете использовать, как указано ниже

var d = new Date("2017-10-03");
d.setMonth(d.getMonth() + 1);
var month = d.getMonth(); // get new month
alert(month);

Надеюсь, поможет

0

В 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 

Для получения дополнительной информации см. Ссылку

0
//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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню