Node.js: Неверная дата

"use strict"

function formatDateTime(date) {
    const h = date.getUTCHours().toString();
    const m = date.getUTCMinutes().toString();
    const s = date.getUTCSeconds().toString();
    return `${date.getUTCFullYear()}-${date.getUTCMonth().toString().padStart(2, "0")}-${date.getUTCDay().toString().padStart(2, "0")} ` +
        `${h.padStart(2, "0")}:${m.padStart(2, "0")}:${s.padStart(2, "0")}.${date.getUTCMilliseconds().toString().padStart(4, "0")} GMT`;
}

const date = new Date();
console.log(formatDateTime(date));
//2025-07-00 10:17:52.0880 GMT

Сегодня заметил, что отображается неправильная дата :thinking: Когда началось - не знаю. Вроде, ещё вчера нормально было :man_shrugging:

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

Если вы формируете дату, то вам нужен не getUTCDay (день недели), а getUTCDate (день месяца).

Мне кажется, тут путаница с тем, какой день считать первым. Мы привыкли, что первый день недели - понедельник, а getUTCDay начинает отсчет с воскресенья.

Да, каюсь, тут мой косяк. Это я уже поправил.

Так-то да. Но, почему-то, у меня понедельник был единицей, а у других нулём. Кажется, было так.