Temporal.Duration.prototype.add()
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức add() của các instance Temporal.Duration trả về một đối tượng Temporal.Duration mới với tổng của duration này và một duration đã cho. Kết quả được cân bằng.
Cú pháp
add(other)
Tham số
other-
Một chuỗi, một đối tượng, hoặc một instance
Temporal.Durationđại diện cho duration cần thêm vào duration này. Nó được chuyển đổi thành đối tượngTemporal.Durationbằng thuật toán giống nhưTemporal.Duration.from().
Giá trị trả về
Một đối tượng Temporal.Duration mới đại diện cho tổng của duration này và other.
Ngoại lệ
RangeError-
Được ném ra trong một trong các trường hợp sau:
thishoặcotherlà duration lịch (cóyears,monthshoặcweekskhác không), vì duration lịch là mơ hồ mà không có lịch và tham chiếu thời gian.- Tổng của
thisvàothervượt quá hoặc dưới mức duration tối đa hoặc tối thiểu có thể biểu diễn, là ±253 giây.
Mô tả
Duration không lịch biểu diễn một lượng thời gian cố định rõ ràng. Về mặt nội bộ, this và other đều được chuyển đổi thành nano giây (giả sử ngày 24 giờ) và cộng lại. Kết quả sau đó được chuyển đổi trở lại thành đối tượng Temporal.Duration, vì vậy kết quả luôn được cân bằng hoặc nặng đầu với đơn vị lớn nhất có thể là days.
Nếu bạn muốn thực hiện phép cộng hoặc trừ với duration lịch, bạn có thể thêm cả hai duration vào điểm bắt đầu và sau đó tính sự khác biệt giữa hai thời điểm kết quả; tức là, dur1 + dur2 tương đương với (start + dur1 + dur2) - start.
Để thêm duration vào ngày hoặc giờ, hãy sử dụng phương thức add() của đối tượng ngày hoặc giờ thay thế.
Ví dụ
>Sử dụng add()
const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
const d2 = Temporal.Duration.from({ hours: -1, minutes: -20 });
const d3 = d1.add(d2);
console.log(d3.toString()); // "PT10M"
Cộng duration lịch
const d1 = Temporal.Duration.from({ days: 1 });
const d2 = Temporal.Duration.from({ months: 1 });
d1.add(d2); // RangeError: for calendar duration arithmetic, use date arithmetic relative to a starting point
const start = Temporal.PlainDateTime.from("2022-01-01T00:00"); // ISO 8601 calendar
const result = start.add(d1).add(d2).since(start);
console.log(result.toString()); // "P32D"
Đặc tả
| Thông số kỹ thuật |
|---|
| Temporal> # sec-temporal.duration.prototype.add> |