Date.toISOString(): момент в UTC и проверка корректности
Метод toISOString представляет корректный объект Date в стандартизованной строковой форме UTC.
Назначение
Метод toISOString представляет корректный объект Date в стандартизованной строковой форме UTC.
Как это работает
Суффикс Z обозначает UTC, а не местный часовой пояс. Для недопустимой даты метод выбрасывает RangeError. Дата без времени и конкретный момент являются разными моделями данных.
Пример
const moment=new Date("2026-08-30T12:00:00+03:00");
console.assert(moment.toISOString()==="2026-08-30T09:00:00.000Z");
const invalid=new Date("not-a-date");
console.assert(Number.isNaN(invalid.getTime()));
Что должно получиться
Полдень при смещении +03:00 представлен как 09:00 UTC. Проверка getTime позволяет обнаружить недопустимую дату, прежде чем toISOString выбросит исключение.
Граница применения и частая ошибка
Не преобразуйте день рождения в момент UTC без понимания последствий часового пояса. И не полагайтесь на свободный разбор неоднозначных строк вроде 01/02/2026.
Самостоятельная проверка
Создайте момент с явным смещением +03:00 и сравните час в ISO-строке. Затем обработайте недопустимую дату до вызова форматирования.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.