Я могу получить день нет через текущую дату, как это, он дает мне текущий результат
const dateObject = new Date()
console.log(dateObject.getDay())
Но когда я пытаюсь установить дату определенного времени, я не получаю фактического ответа
const dateObject = new Date(2018, 8, 5)
console.log(dateObject.getDay())
Я ожидаю 0, как это было в воскресенье, но у меня 3.
В чем моя вина или непонимание? Спасибо
Вы ошибаетесь с индексом месяца. Месяц начинается с нуля.
January = 0
February = 1
March = 2
April = 3
...
...
...
...
Таким образом, индекс августовского месяца равен 7.
Вы ответите так:
const dateObject = new Date(2018, 7, 5)
console.log(dateObject.getDay())
Параметр 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
.
Date("2018-08-05")
илиDate(2018,7,5)