#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);
Примечание: В зависимости от этого вы можете увидеть другой день, но это связано с тем, что изначально возвращенная дата не зависит от платформы. Так что это показывает по Гринвичу.