Intl.DateTimeFormat.prototype.resolvedOptions()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Phương thức resolvedOptions() của các instance Intl.DateTimeFormat trả về một đối tượng mới với các thuộc tính phản ánh các tùy chọn được tính toán trong quá trình khởi tạo đối tượng DateTimeFormat này.
Try it
const region = new Intl.DateTimeFormat("zh-CN", { timeZone: "UTC" });
const options = region.resolvedOptions();
console.log(options.locale);
// Expected output: "zh-CN"
console.log(options.calendar);
// Expected output: "gregory"
console.log(options.numberingSystem);
// Expected output: "latn"
Cú pháp
resolvedOptions()
Tham số
Không có.
Giá trị trả về
Một đối tượng mới với các thuộc tính phản ánh các tùy chọn được tính toán trong quá trình khởi tạo đối tượng DateTimeFormat này. Đối tượng có các thuộc tính sau, theo thứ tự được liệt kê:
locale-
BCP 47 language tag cho ngôn ngữ thực sự được sử dụng, được xác định bởi quá trình thương lượng ngôn ngữ. Chỉ các khóa mở rộng Unicode
ca,hc, vànu, nếu được yêu cầu, mới có thể được bao gồm trong đầu ra. calendar-
Giá trị được cung cấp cho thuộc tính này trong đối số
options, hoặc sử dụng khóa mở rộng Unicode"ca", với giá trị mặc định được điền vào khi cần. Đây là kiểu lịch được hỗ trợ cho ngôn ngữ này. Mặc định phụ thuộc vào ngôn ngữ. numberingSystem-
Giá trị được cung cấp cho thuộc tính này trong đối số
options, hoặc sử dụng khóa mở rộng Unicode"nu", với giá trị mặc định được điền vào khi cần. Đây là hệ thống đánh số được hỗ trợ cho ngôn ngữ này. Mặc định phụ thuộc vào ngôn ngữ. timeZone-
Giá trị được cung cấp cho thuộc tính này trong đối số
options, với giá trị mặc định được điền vào khi cần. Đây là tên múi giờ IANA. Mặc định là múi giờ mặc định của runtime.Note: Việc chuẩn hóa
Temporalyêu cầu các trình duyệt sử dụng cùng mã định danh như được chỉ định ban đầu, không chuẩn hóa thành bí danh khác. Xem múi giờ và offset để biết thêm thông tin. hourCycleOptional-
Giá trị được cung cấp cho thuộc tính này trong đối số
options, hoặc sử dụng khóa mở rộng Unicode"hc", với giá trị mặc định được điền vào khi cần. Nếuhour12được cung cấp trongoptions, thì nó ghi đè các cài đặthourCyclekhác. Nó chỉ có mặt nếu các tùy chọn đã phân giải cũng bao gồmhourhoặctimeStyle. Nó là"h11","h12","h23", hoặc"h24". Mặc định phụ thuộc vào ngôn ngữ, mặc dù"h24"không bao giờ là mặc định. hour12Optional-
Được tính toán từ
hourCycle. Nó chỉ có mặt nếu các tùy chọn đã phân giải cũng bao gồmhourhoặctimeStyle. Nó làtruenếuhourCyclelà"h11"hoặc"h12", vàfalsenếuhourCyclelà"h23"hoặc"h24". weekday,era,year,month,day,dayPeriod,hour,minute,second,fractionalSecondDigits,timeZoneNameOptional-
Các giá trị kết quả từ việc khớp định dạng giữa các thuộc tính tương ứng trong đối số
optionsvà các sự kết hợp và biểu diễn có sẵn để định dạng ngày giờ trong ngôn ngữ đã chọn. Một số thuộc tính này có thể không có mặt, biểu thị rằng các thành phần tương ứng sẽ không được biểu diễn trong đầu ra đã định dạng.weekday,era, vàdayPeriodlà"narrow","short", hoặc"long";year,day,hour,minute, vàsecondlà"numeric","2-digit", hoặc"narrow";monthlà"numeric","2-digit","narrow","short", hoặc"long";fractionalSecondDigitslà1,2, hoặc3;timeZoneNamelà"short","long","shortOffset","longOffset","shortGeneric", hoặc"longGeneric".Nếu các thuộc tính này được yêu cầu trong
options, constructor ngăn không cho chỉ địnhdateStylevàtimeStyle, vì vậy nhóm bên dưới sẽ không bao giờ có mặt. dateStyle,timeStyleOptional-
Các giá trị được cung cấp cho các thuộc tính này trong đối số
options. Chúng là"full","long","medium","short", hoặc"none". Một số thuộc tính này có thể không có mặt, biểu thị rằng các thành phần tương ứng sẽ không được biểu diễn trong đầu ra đã định dạng.Nếu các thuộc tính này được yêu cầu trong
options, constructor ngăn không cho chỉ định các tùy chọn thành phần ngày giờ riêng lẻ, vì vậy nhóm bên trên sẽ không bao giờ có mặt.Note: Mặc dù
dateStylevàtimeStylelà phím tắt cho các kiểu thành phần ngày và giờ riêng lẻ, các kiểu thành phần cụ thể (phụ thuộc vào ngôn ngữ) mà chúng phân giải thành không được bao gồm trong các tùy chọn đã phân giải. Điều này đảm bảo kết quả củaresolvedOptions()có thể được truyền trực tiếp vào constructorIntl.DateTimeFormat()(vì một đối tượngoptionscó cảdateStylehoặctimeStylelẫn các kiểu thành phần ngày hoặc giờ riêng lẻ là không hợp lệ).
Ví dụ
>Sử dụng phương thức resolvedOptions
const germanFakeRegion = new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
const usedOptions = germanFakeRegion.resolvedOptions();
usedOptions.locale; // "de" (because "de-XX" does not exist)
usedOptions.calendar; // "gregory"
usedOptions.numberingSystem; // "latn"
usedOptions.timeZone; // "UTC"
usedOptions.month; // "numeric"
Lấy múi giờ và tùy chọn ngôn ngữ của người dùng
Constructor Intl.DateTimeFormat không có tùy chọn nào sử dụng cài đặt hệ thống hiện tại. Bạn có thể sử dụng resolvedOptions() để lấy múi giờ hiện tại và lịch và hệ thống đánh số ưa thích của ngôn ngữ người dùng:
const systemOptions = new Intl.DateTimeFormat().resolvedOptions();
systemOptions.timeZone; // e.g., "Europe/Brussels" or "Asia/Riyadh"
systemOptions.calendar; // e.g., "gregory" or "islamic-umalqura"
systemOptions.numberingSystem; // e.g., "latn" or "arab"
systemOptions.locale; // e.g., "nl-BE" or "ar-SA"
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-intl.datetimeformat.prototype.resolvedoptions> |