Дата.проблема с форматированием даты toLocaleDateString

#javascript

Вопрос:

Код:

 const date = new Date(2020, 05, 10)
const options = {
    year: 'numeric',
    month: 'long',
    day: 'numeric'
}
const formattedDate = date.toLocaleDateString('en', options);
console.log(formattedDate);
 

Почему выход 10 июня 2020 года? Я просмотрел документацию, но ничего не понял. Не мог бы кто-нибудь помочь мне понять, что происходит в приведенном выше коде.

Комментарии:

1. каков ваш ожидаемый результат?

2. Я не понимаю, о чем … меня спросили на конкурсном экзамене…..

3. Проверьте это developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… Месяц настроен month: 'long' так , как он будет отображаться June , short будет отображаться Jun , но если вы передадите как numeric , он выведет месяц как 6, а так как месяц начинается с 0-11, Так как вы передали 5 как месяц в конструкторе даты, так что июнь-это месяц вывода

4. @navnath Привет, хорошее объяснение. Как насчет того, чтобы опубликовать ответ?

Ответ №1:

Здесь options = { year: 'numeric', month: 'long', day: 'numeric'} месяц настроен month: long так , как он будет отображаться June , short будет отображаться Jun , но если вы пройдете numeric за месяц , в options нем будет выводиться интересно месяц как 6 , а так как месяц начинается с 0-11 и так как вы прошли 5 как месяц в конструкторе дат, поэтому он будет выводить июнь как месяц.

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

Ответ №2:

Это больше связано с Date() конструктором.

Существует несколько форматов для передачи даты в конструктор. При использовании формата значений отдельных компонентов даты и времени вторым параметром является monthIndex. Именно поэтому 5 — соответствует июню, а для мая вам придется использовать 4.

Из документов:

Целое значение, представляющее месяц, начинающийся с 0 для января по 11 для декабря. Если передается значение, большее 11, то эти месяцы будут добавлены к дате; например, новая дата(1990, 12, 1) вернет 1 января 1991 года

Как вы можете видеть, это не имеет никакого отношения к вашим возможностям. Месяц июнь еще до этого.

 const date = new Date(2020, 05, 10)
console.log(date);
const formattedDate = date.toLocaleDateString('en', options);
console.log(formattedDate); 

Примечание: В зависимости от этого вы можете увидеть другой день, но это связано с тем, что изначально возвращенная дата не зависит от платформы. Так что это показывает по Гринвичу.