Temporal.ZonedDateTime.prototype.toJSON()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Phương thức toJSON() của các thực thể Temporal.ZonedDateTime trả về một chuỗi biểu thị ngày-giờ này theo cùng định dạng RFC 9557 như khi gọi toString(). Nó được thiết kế để được gọi ngầm bởi JSON.stringify().

Cú pháp

js
toJSON()

Tham số

Không có.

Giá trị trả về

Một chuỗi biểu thị ngày-giờ đã cho theo định dạng RFC 9557, với annotation lịch được bao gồm nếu nó không phải là "iso8601", và offset cùng annotation múi giờ luôn được bao gồm.

Mô tả

Phương thức toJSON() được gọi tự động bởi JSON.stringify() khi một đối tượng Temporal.ZonedDateTime được chuyển thành chuỗi. Phương thức này thường được thiết kế để, theo mặc định, tuần tự hóa hữu ích các đối tượng Temporal.ZonedDateTime trong quá trình tuần tự hóa JSON, sau đó có thể được giải tuần tự hóa bằng hàm Temporal.ZonedDateTime.from() làm reviver của JSON.parse().

Ví dụ

Sử dụng toJSON()

js
const zdt = Temporal.ZonedDateTime.from({
  year: 2021,
  month: 8,
  day: 1,
  timeZone: "America/New_York",
});
const zdtStr = zdt.toJSON(); // '2021-08-01T00:00:00-04:00[America/New_York]'
const zdt2 = Temporal.ZonedDateTime.from(zdtStr);

Tuần tự hóa và phân tích JSON

Ví dụ này cho thấy cách Temporal.ZonedDateTime có thể được tuần tự hóa dưới dạng JSON mà không cần nỗ lực thêm, và cách phân tích lại nó.

js
const zdt = Temporal.ZonedDateTime.from({
  year: 2021,
  month: 8,
  day: 1,
  timeZone: "America/New_York",
});
const jsonStr = JSON.stringify({ meeting: zdt }); // '{"meeting":"2021-08-01T00:00:00-04:00[America/New_York]"}'
const obj = JSON.parse(jsonStr, (key, value) => {
  if (key === "meeting") {
    return Temporal.ZonedDateTime.from(value);
  }
  return value;
});

Đặc tả

Specification
Temporal
# sec-temporal.zoneddatetime.prototype.tojson

Tương thích trình duyệt

Xem thêm