Получить номер дня с определенной даты

Я могу получить день нет через текущую дату вот так, это даст мне текущий результат

const dateObject = new Date()
console.info(dateObject.getDay())

Но когда я пытаюсь указать конкретную дату, я не получаю фактического ответа.

const dateObject = new Date(2018, 8, 5)
console.info(dateObject.getDay())

I expect 0 , as it's sunday of the week, but I got 3.

В чем моя вина или недоразумение? Спасибо

Почему сейчас воскресенье? Дата, которую вы указываете, находится в сентябрь, потому что тип конструктора Date, который вы использовали, ожидаемые месяцы, которые начинаются с 0 (есть много ошибок при использовании Date. Поэтому вы обычно не используете Date непосредственно для календарных «математических расчетов»). Если вы хотели 5 августа 2018 года, используйте Date("2018-08-05") или Date(2018,7,5)

Mike 'Pomax' Kamermans 04.08.2018 19:34
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
51
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Параметр monthIndex в конструкторе Date отсчитывается от нуля, поэтому 8 - это сентябрь, а не август. getDay правильно сообщает, что пятое сентября - среда.

Подробнее см. MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Parameters

С датами JS есть достаточно причудливых странностей, поэтому я просто использую MomentJS всякий раз, когда имею дело со значениями даты / времени.

В new Date(2018, 8, 5) месяц начинается с 0, а не с 1. Следовательно, в вашем случае это не August, а September.

Ответ принят как подходящий

Вы ошиблись с индексом месяца. Месяц обычно начинается с индекса 0.

January = 0
February = 1
March = 2
April = 3
...
...
...
...

Таким образом, порядковый номер месяца августа равен 7.

Ваш ответ будет таким:

const dateObject = new Date(2018, 7, 5)
console.info(dateObject.getDay())

Спасибо за это оформление :)

King Rayhan 04.08.2018 19:42

Другие вопросы по теме