Неправильно определяется день недели

const date = new Date();
const n = date.getDay();
console.log(n);

Если текущий день - воскресение, то n равно 7, а должно быть 0.
Почему так?

А как день устанавливается? Что в date?
В Date можно дату передать.

Если ничего не передавать в конструктор - получает текущую дату-время.

не актуально.
я ошибся

Ну так сейчас среда )
На компе дату менять что ли?
Надо смотреть какая дата получилась в date для начала.

Да дело в том, что метод getDay() не может 7 вернуть!

Метод getDay() возвращает день недели для указанной даты по местному времени, где 0 означает воскресенье.

Return value
An integer number, between 0 and 6, corresponding to the day of the week for the given date, according to local time: 0 for Sunday, 1 for Monday, 2 for Tuesday, and so on.

зачем?
достаточно в конструкторе нужную дату подставить.
например,

const date = new Date('2023-02-26T14:00:00');

Это я уже слышал. Но у меня может :rofl:

значит, то, где Вы запускаете свой код - это не JS.
Или Вы можете дать ссылку, где наблюдается данное поведение?

Ну да, но у меня 0 и есть, а в коде из первого поста вообще не ноль должен быть, поэтому надо понять как именно воспроизводилось.
Если и правда 7, то проверить в другом браузере, и если там ок, то погуглить подобный баг в предыдущем браузере.

1 лайк

вот, например, онлайн
https://onecompiler.com/javascript/3yynvx83b

Задали домашку: создать массив строк с днями недели. Выходные вывести жирным. Текущий день - курсивом (если получится).
Я, весь такой радостный, создаю массив ["Понедельник", ...., "Воскресение"]. И перебираю его от 0 до 6, ничего не подозревая. Проверяю - работает. Перевожу дату на воскресение, проверяю - работает. Выдаёт: воскресение - 6 - сегодня. Ну это я от getDay единицу отнял, чтобы с индексами совпадало. Всё это запускаю в VS Code через live server.
Потом читаю чатик и вижу, что у людей траблы. Интересуюсь почему, и обнаруживается, что у всех воскресение это 0, а у меня 7 :dizzy_face:
Даже с одним человеком в личке переписывался и специально перепроверил, точно ли у меня выдаёт 7. Так что, ошибке с моей стороны взяться просто негде :man_shrugging: 3 строчки кода :man_shrugging:

А вот сейчас, перед тем как это написать, ещё раз перевёл дату на воскресение и оно выдаёт… 0. товарищи! :trollfaceparrot:
Это как вообще понимать? :man_with_turban: