RangeError: invalid date
Ngoại lệ JavaScript "invalid date" xảy ra khi một ngày không hợp lệ được cố gắng chuyển đổi thành chuỗi ngày ISO.
Thông báo
RangeError: Invalid time value (V8-based) RangeError: invalid date (Firefox) RangeError: Invalid Date (Safari)
Loại lỗi
RangeError
Điều gì đã xảy ra?
Bạn đang chuyển đổi một giá trị ngày không hợp lệ thành chuỗi ngày ISO. Điều này thường xảy ra theo một trong ba cách:
- Gọi phương thức
toISOString() - Gọi phương thức
toJSON(), ngầm gọitoISOString - Sử dụng
JSON.stringify()để chuyển đổi ngày thành chuỗi, ngầm gọitoJSON
Ngày không hợp lệ được tạo ra khi bạn cố gắng phân tích một chuỗi ngày không hợp lệ, hoặc đặt dấu thời gian thành giá trị ngoài phạm vi. Các ngày không hợp lệ thường khiến tất cả các phương thức ngày trả về NaN hoặc các giá trị đặc biệt khác. Tuy nhiên, các ngày như vậy không có biểu diễn chuỗi ISO hợp lệ, vì vậy lỗi được ném khi bạn cố gắng thực hiện điều đó.
Ví dụ
>Trường hợp không hợp lệ
js
const invalid = new Date("nothing");
invalid.toISOString(); // RangeError: invalid date
invalid.toJSON(); // RangeError: invalid date
JSON.stringify({ date: invalid }); // RangeError: invalid date
Tuy nhiên, hầu hết các phương thức khác trả về các giá trị đặc biệt:
js
invalid.toString(); // "Invalid Date"
invalid.getDate(); // NaN
Để biết thêm chi tiết, xem tài liệu Date.parse().
Trường hợp hợp lệ
js
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"