Temporal.ZonedDateTime.prototype.valueOf()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức valueOf() của các thực thể Temporal.ZonedDateTime ném ra TypeError, ngăn các thực thể Temporal.ZonedDateTime bị chuyển đổi ngầm sang kiểu nguyên thủy khi được sử dụng trong các phép toán số học hoặc so sánh.
Cú pháp
valueOf()
Tham số
Không có.
Giá trị trả về
Không có.
Ngoại lệ
TypeError-
Luôn được ném ra.
Mô tả
Vì cả chuyển đổi nguyên thủy và chuyển đổi số đều gọi valueOf() trước toString(), nếu valueOf() không có, thì biểu thức như yearMonth1 > yearMonth2 sẽ ngầm so sánh chúng dưới dạng chuỗi, điều này có thể tạo ra kết quả không mong đợi. Bằng cách ném TypeError, các thực thể Temporal.ZonedDateTime ngăn chặn các chuyển đổi ngầm như vậy. Bạn cần chuyển đổi chúng sang số rõ ràng bằng cách sử dụng Temporal.ZonedDateTime.prototype.epochNanoseconds, hoặc sử dụng phương thức tĩnh Temporal.ZonedDateTime.compare() để so sánh chúng.
Ví dụ
>Các phép toán số học và so sánh trên Temporal.ZonedDateTime
Tất cả các phép toán số học và so sánh trên các thực thể Temporal.ZonedDateTime nên sử dụng các phương thức chuyên dụng hoặc chuyển đổi chúng sang kiểu nguyên thủy rõ ràng.
const zdt1 = Temporal.ZonedDateTime.from(
"2022-01-01T00:00:00[America/New_York]",
);
const zdt2 = Temporal.ZonedDateTime.from(
"2022-07-01T00:00:00[America/New_York]",
);
zdt1 > zdt2; // TypeError: can't convert ZonedDateTime to primitive type
Temporal.ZonedDateTime.compare(zdt1, zdt2); // -1
zdt2 - zdt1; // TypeError: can't convert ZonedDateTime to primitive type
zdt2.since(zdt1).toString(); // "PT4343H"
Đặc tả
| Specification |
|---|
| Temporal> # sec-temporal.zoneddatetime.prototype.valueof> |