Temporal.Duration.from()

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 tĩnh Temporal.Duration.from() tạo một đối tượng Temporal.Duration mới từ một đối tượng Temporal.Duration khác, một đối tượng có các thuộc tính duration, hoặc một chuỗi ISO 8601.

Cú pháp

js
Temporal.Duration.from(info)

Tham số

info

Một trong các giá trị sau:

  • Một instance Temporal.Duration, tạo ra bản sao của instance đó.

  • Một chuỗi ISO 8601 đại diện cho duration.

  • Một đối tượng chứa ít nhất một trong các thuộc tính sau (theo thứ tự chúng được lấy và xác thực):

    Mỗi thuộc tính nên chứa một giá trị số nguyên. Duration kết quả không được có dấu hỗn hợp, vì vậy tất cả các thuộc tính này phải có cùng dấu (hoặc bằng không). Các thuộc tính còn thiếu được coi là không.

Giá trị trả về

Một đối tượng Temporal.Duration mới, có thể chưa cân bằng, với các thành phần đã chỉ định.

Ngoại lệ

RangeError

Được ném ra trong một trong các trường hợp sau:

  • Bất kỳ thuộc tính nào được nhận dạng trong đối tượng info không phải là số nguyên (bao gồm cả các giá trị không hữu hạn).
  • Một đơn vị lịch (năm, tháng, tuần) có giá trị tuyệt đối ≥ 232.
  • Phần không lịch của duration (ngày và thấp hơn), khi được biểu diễn theo giây, có giá trị tuyệt đối ≥ 253.
TypeError

Được ném ra trong một trong các trường hợp sau:

  • info không phải là đối tượng hoặc chuỗi.
  • Tất cả các thuộc tính được nhận dạng trong đối tượng info đều là undefined.

Ví dụ

Tạo duration từ đối tượng

js
const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
console.log(d1.toString()); // "PT1H30M"

const d2 = Temporal.Duration.from({ months: 1, days: 2 });
console.log(d2.toString()); // "P1M2D"

// Uncommon because unbalanced, but valid
const unbalanced = Temporal.Duration.from({
  hours: 100,
  minutes: 100,
  seconds: 100,
});
console.log(unbalanced.toString()); // "PT100H100M100S"

const neg = Temporal.Duration.from({ hours: -1, minutes: -30 });
console.log(neg.toString()); // "-PT1H30M"

Tạo duration từ chuỗi

js
const d = Temporal.Duration.from("P1Y2M3W4DT5H6M7.00800901S");
console.log(d.hours); // 5

Tạo duration từ một duration khác

js
const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
const d2 = Temporal.Duration.from(d1);
console.log(d2.toString()); // "PT1H30M"

Đặc tả

Thông số kỹ thuật
Temporal
# sec-temporal.duration.from

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

Xem thêm