Temporal.PlainDate.prototype.toLocaleString()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức toLocaleString() của các instance Temporal.PlainDate trả về một chuỗi biểu diễn ngày này theo ngôn ngữ cụ thể. Trong các triển khai có hỗ trợ API Intl.DateTimeFormat, phương thức này ủy quyền cho Intl.DateTimeFormat.
Mỗi lần toLocaleString được gọi, nó phải thực hiện tìm kiếm trong một cơ sở dữ liệu lớn chứa các chuỗi bản địa hóa, điều này có thể kém hiệu quả. Khi phương thức được gọi nhiều lần với cùng đối số, tốt hơn là tạo một đối tượng Intl.DateTimeFormat và sử dụng phương thức format() của nó, vì đối tượng DateTimeFormat ghi nhớ các đối số được truyền vào và có thể quyết định lưu vào bộ nhớ đệm một phần của cơ sở dữ liệu, do đó các lần gọi format trong tương lai có thể tìm kiếm chuỗi bản địa hóa trong ngữ cảnh bị giới hạn hơn.
Cú pháp
toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)
Tham số
Các tham số locales và options tùy chỉnh hành vi của hàm và cho phép các ứng dụng chỉ định ngôn ngữ có quy ước định dạng cần sử dụng.
Trong các triển khai có hỗ trợ API Intl.DateTimeFormat, các tham số này tương ứng chính xác với các tham số của hàm tạo Intl.DateTimeFormat(). Các triển khai không có hỗ trợ Intl.DateTimeFormat sẽ trả về cùng chuỗi như toString(), bỏ qua cả hai tham số.
localesOptional-
Một chuỗi chứa BCP 47 language tag, hoặc một mảng các chuỗi như vậy. Tương ứng với tham số
localescủa hàm tạoIntl.DateTimeFormat(). optionsOptional-
Một đối tượng điều chỉnh định dạng đầu ra. Tương ứng với tham số
optionscủa hàm tạoIntl.DateTimeFormat(). Nếu lịch của ngày này không phải là"iso8601", tùy chọncalendarphải được cung cấp với cùng giá trị; nếu không, nếu lịch của ngày này là"iso8601", tùy chọncalendarcó thể là bất kỳ giá trị nào. Về các tùy chọn thành phần date-time và các phím tắt kiểu (dateStylevàtimeStyle), các tùy chọn nên theo một trong các dạng sau:- Không cung cấp bất kỳ tùy chọn nào:
year,month, vàdaysẽ mặc định là"numeric". - Chỉ cung cấp
dateStyle: nó mở rộng thành các định dạngweekday,era,year,month, vàday. - Cung cấp một số tùy chọn thành phần date-time, trong đó ít nhất một tùy chọn là tùy chọn ngày (
weekday,year,month,day). Chỉ các thành phần ngày được chỉ định mới được đưa vào đầu ra.
- Không cung cấp bất kỳ tùy chọn nào:
Xem hàm tạo Intl.DateTimeFormat() để biết chi tiết về các tham số này và cách sử dụng chúng.
Giá trị trả về
Một chuỗi biểu diễn ngày đã cho theo các quy ước đặc thù của ngôn ngữ.
Trong các triển khai có Intl.DateTimeFormat, điều này tương đương với new Intl.DateTimeFormat(locales, options).format(date), trong đó options đã được chuẩn hóa như mô tả ở trên.
Note:
Hầu hết thời gian, định dạng được trả về bởi toLocaleString() là nhất quán. Tuy nhiên, đầu ra có thể khác nhau giữa các triển khai, ngay cả trong cùng ngôn ngữ — sự khác biệt đầu ra được thiết kế sẵn và được đặc tả cho phép. Nó cũng có thể không như bạn mong đợi. Ví dụ, chuỗi có thể sử dụng khoảng trắng không ngắt hoặc được bao quanh bởi các ký tự kiểm soát hai chiều. Bạn không nên so sánh kết quả của toLocaleString() với các hằng số được mã hóa cứng.
Ngoại lệ
RangeError-
Được ném ra nếu bất kỳ tùy chọn nào không hợp lệ.
TypeError-
Được ném ra nếu bất kỳ tùy chọn nào không thuộc kiểu dự kiến.
Ví dụ
>Sử dụng toLocaleString()
Sử dụng cơ bản phương thức này mà không chỉ định locale sẽ trả về một chuỗi định dạng trong ngôn ngữ mặc định với các tùy chọn mặc định.
const date = Temporal.PlainDate.from("2021-08-01");
console.log(date.toLocaleString()); // 8/1/2021 (giả sử ngôn ngữ en-US)
Nếu lịch của ngày không khớp với lịch mặc định của ngôn ngữ, và lịch của ngày không phải là iso8601, phải cung cấp rõ ràng tùy chọn calendar với cùng giá trị.
const date = Temporal.PlainDate.from("2021-08-01[u-ca=japanese]");
// Ngôn ngữ ja-JP sử dụng lịch Gregorian theo mặc định
date.toLocaleString("ja-JP", { calendar: "japanese" }); // R3/8/1
Sử dụng toLocaleString() với các tùy chọn
Bạn có thể tùy chỉnh các phần nào của ngày được đưa vào đầu ra bằng cách cung cấp tham số options.
const date = Temporal.PlainDate.from("2021-08-01");
date.toLocaleString("en-US", { dateStyle: "full" }); // Sunday, August 1, 2021
date.toLocaleString("en-US", {
year: "numeric",
month: "long",
day: "numeric",
}); // August 1, 2021
date.toLocaleString("en-US", { year: "numeric", month: "long" }); // August 2021
Đặc tả
| Specification |
|---|
| Temporal> # sec-temporal.plaindate.prototype.tolocalestring> |