Ошибка разбора даты в JavaScript? [Дубликат]

1
  let date = new Date("2017-09-12T12:00:00");
  console.log(date.getUTCMonth());

Здесь я ожидаю, что он будет регистрировать 09 в течение месяца, но регистрирует 08. Однако год, день, час и минута обрабатываются правильно. что здесь происходит? Как я могу извлечь 09 из указанной строки даты?

  • 0
    Месяц Javascript начинается с 0, что означает январь 0, февраль 1, и так далее. Итак, вы должны добавить 1 к date.getUTCMonth ().
  • 0
    То есть день начинается с 1, а месяц начинается с 0?
Показать ещё 5 комментариев
Теги:
ecmascript-6
date

3 ответа

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

Значение getUTCMonth() - это нулевое значение - ноль - январь.

Для получения дополнительной информации: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth

3

date.getUTCMonth() возвращает месяц (от 0 до 11) за указанную дату.

Чтобы получить то, что вы ожидаете, добавьте 1.

2

Месяцы индексируются 0 в Javascript.

var date = new Date(date),
    month = '' + (date.getMonth() + 1),
    day = '' + date.getDate(),
    year = date.getFullYear();

Для быстрого примера - как вы отформатируете его, если хотите отформатировать его в формате YYYY-MM-DD.

Ещё вопросы

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