Intl.RelativeTimeFormat.prototype.formatToParts()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
Phương thức formatToParts() của các instance Intl.RelativeTimeFormat trả về một mảng các đối tượng đại diện cho từng phần của chuỗi được định dạng mà format() sẽ trả về. Phương thức này hữu ích để xây dựng chuỗi tùy chỉnh từ các token theo locale.
Try it
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
const parts = rtf.formatToParts(10, "seconds");
console.log(parts[0].value);
// Expected output: "in "
console.log(parts[1].value);
// Expected output: "10"
console.log(parts[2].value);
// Expected output: " seconds"
Cú pháp
formatToParts(value, unit)
Tham số
Giá trị trả về
Một Array các đối tượng chứa thời gian tương đối được định dạng theo từng phần. Mỗi đối tượng có hai hoặc ba thuộc tính: type, value, và tùy chọn unit, mỗi thuộc tính chứa một chuỗi. Ghép nối chuỗi của value theo thứ tự được cung cấp sẽ cho kết quả giống như format(). Các phần có thể được coi là lấy trực tiếp từ việc gọi Intl.NumberFormat.prototype.formatToParts() với giá trị số, chỉ truyền tùy chọn numberingSystem, sau đó thêm các token type: "literal" bổ sung, chẳng hạn như "in ", " days ago", v.v. Tất cả token được tạo ra bởi NumberFormat có thêm thuộc tính unit, là dạng số ít của unit đầu vào; thuộc tính này dùng cho mục đích lập trình và không được bản địa hóa. Đơn vị được bản địa hóa được xuất ra như một phần của token literal.
Khi options.numeric là "auto" và có chuỗi đặc biệt cho giá trị đó, mảng được trả về là một token literal duy nhất.
Ví dụ
>Sử dụng formatToParts()
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Định dạng thời gian tương đối sử dụng đơn vị day
rtf.formatToParts(-1, "day");
// [{ type: "literal", value: "yesterday"}]
rtf.formatToParts(100, "day");
// [
// { type: "literal", value: "in " },
// { type: "integer", value: "100", unit: "day" },
// { type: "literal", value: " days" }
// ]
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-Intl.RelativeTimeFormat.prototype.formatToParts> |