RangeError: неверная дата
Исключение JavaScript "invalid date" возникает, когда предпринимается попытка преобразовать неверную дату в строку формата ISO.
Сообщение
RangeError: Invalid time value (V8-based) RangeError: invalid date (Firefox) RangeError: Invalid Date (Safari)
Тип ошибки
Что пошло не так?
Вы преобразуете неверную дату в строку формата ISO, вызывая метод toISOString().
Неверная дата создается, когда вы пытаетесь разобрать недопустимую строку даты или установить временную метку за пределами допустимого диапазона. Неверные даты обычно приводят к тому, что все методы работы с датами возвращают NaN или другие специальные значения. Однако такие даты не имеют допустимых строковых представлений в формате ISO, поэтому при попытке сделать это выбрасывается ошибка.
Примечание: toJSON() не вызывает эту ошибку. Он проверяет, является ли дата конечной перед ее форматированием, и возвращает null для неверной даты вместо вызова toISOString(). JSON.stringify(), который вызывает toJSON(), поэтому сериализует неверную дату как null вместо выбрасывания ошибки.
Примеры
Неверные случаи
const invalid = new Date("nothing");
invalid.toISOString(); // RangeError: invalid date
Однако большинство других методов возвращают специальные значения:
invalid.toString(); // "Invalid Date"
invalid.getDate(); // NaN
invalid.toJSON(); // null
JSON.stringify({ date: invalid }); // '{"date":null}'
Для получения дополнительных сведений см. документацию по Date.parse().
Верные случаи
new Date("05 October 2011 14:48 UTC").toISOString(); // "2011-10-05T14:48:00.000Z"
new Date(1317826080).toISOString(); // "2011-10-05T14:48:00.000Z"
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_date