Кстати, а судя по докам, всё правильно
Но у меня на курсах по JS дата тоже странно работала. Первый день недели начинался с 1, а должен с 0. И я такой, в ус не дул, что что-то не так. Я думал, так и должно быть Я сейчас уже точно не помню, в чём конкретно был замут. Но смысл в том, что из-за глюка код у меня работал, а у других нет. Потом мне объяснили, что так быть не должно, а почему оно так - не понятно. Думаю, если сейчас запустить тот код, он бы работал не правильно (то есть, работал бы как у всех)
Вот и сейчас, наверное, был какой-то глюк. А сегодня оно, вдруг, заработало, как должно.
Если вы формируете дату, то вам нужен не getUTCDay (день недели), а getUTCDate (день месяца).
Мне кажется, тут путаница с тем, какой день считать первым. Мы привыкли, что первый день недели - понедельник, а getUTCDay начинает отсчет с воскресенья.