Temporal.PlainDate.prototype.era
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Thuộc tính accessor era của các instance Temporal.PlainDate trả về một chuỗi chữ thường dành riêng cho lịch đại diện cho kỷ nguyên của ngày này, hoặc undefined nếu lịch không sử dụng kỷ nguyên (ví dụ, ISO 8601). era và eraYear cùng nhau xác định duy nhất một năm trong lịch, theo cách tương tự như year. Nó phụ thuộc vào lịch. Đối với Gregorian, đó là "ce" hoặc "bce".
Giá trị
Tất cả các lịch được chỉ định có kỷ nguyên được định nghĩa đầy đủ theo spec.
-
Các lịch sau có một kỷ nguyên duy nhất:
buddhist:"be"coptic:"am"ethioaa:"aa"hebrew:"am"indian:"shaka"persian:"ap"
-
Các lịch sau có hai kỷ nguyên. Một là kỷ nguyên epoch, trong đó
eraYearbắt đầu từ 1 và bằng vớiyear. Kỷ nguyên còn lại là kỷ nguyên nghịch đảo, trong đóeraYearcũng bắt đầu từ 1 và bằng1 - year(vì vậyeraYear: 1tương ứng với năm0,eraYear: 2với năm-1, v.v.):gregory: kỷ nguyên epoch"ce", kỷ nguyên nghịch đảo"bce"islamic-civil,islamic-tbla,islamic-umalqura: kỷ nguyên epoch"ah", kỷ nguyên nghịch đảo"bh"roc: kỷ nguyên epoch"roc", kỷ nguyên nghịch đảo"broc"
-
Lịch
ethiopiccó kỷ nguyên"am"là kỷ nguyên epoch. Các năm trước1thuộc kỷ nguyên"aa", cóeraYearbằngyear - 5500(vì vậyeraYear: -1000tương ứng với năm-6500,eraYear: 1tương ứng với năm-5499, đếneraYear: 5500là năm0). -
Lịch
japanesethêm kỷ nguyên cho mỗi hoàng đế mới, vì vậy năm và kỷ nguyên đầu ra cho ngày trong tương lai có thể không khớp với năm và kỷ nguyên đầu vào khi mã của bạn chạy trên phiên bản engine trong tương lai, và chúng tôi sẽ không liệt kê chúng ở đây. Năm của mỗi kỷ nguyên bắt đầu từ 1. Đây cũng là lịch duy nhất được biết có kỷ nguyên bắt đầu vào giữa năm, nghĩa là cùng mộtyearcó thể tương ứng với các cặp(era, eraYear)khác nhau tùy thuộc vào tháng và ngày.Warning: Tính đến tháng 10 năm 2025, trong lịch
japanese, các ngày trước 1868-10-23 ISO (ngày bắt đầu năm 1 Minh Trị) không hoạt động như mong đợi trong các trình duyệt theo hai cách. Thứ nhất, CLDR có ngày bắt đầu sai cho kỷ nguyên Minh Trị, khiến các triển khai lịch mở rộng kỷ nguyên Minh Trị xa hơn về quá khứ so với thực tế. Thứ hai, Đề xuất kỷ nguyên và monthCode của Intl sắp tới chỉ định rằng các ngày trước 1873-01-01 ISO nên sử dụng kỷ nguyên Gregorian, nhưng các trình duyệt theo truyền thống đã sử dụng các xấp xỉ của các kỷ nguyên Nhật Bản trước đó. Lịchjapaneseđược đưa vào sử dụng vào ngày 1 tháng 1 năm 6 Minh Trị / 1873-01-01 ISO, vì vậy những vấn đề này chỉ ảnh hưởng đến các ngày proleptic. -
Các lịch được chỉ định khác:
chinese,dangi,iso8601, không sử dụng kỷ nguyên và trả vềundefined.
Set accessor của era là undefined. Bạn không thể thay đổi thuộc tính này trực tiếp. Sử dụng phương thức with() để tạo đối tượng Temporal.PlainDate mới với giá trị mong muốn. Khi thiết lập kỷ nguyên, các bí danh "ad" và "bc" cũng được chấp nhận cho kỷ nguyên "ce" và "bce" của lịch gregory hoặc japanese.
Note:
Chuỗi này không dành để hiển thị cho người dùng. Sử dụng toLocaleString() với các tùy chọn thích hợp để lấy chuỗi được bản địa hóa.
Ví dụ
>Sử dụng era
const date = Temporal.PlainDate.from("2021-07-01"); // lịch ISO 8601
console.log(date.era); // undefined
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=gregory]");
console.log(date2.era); // ce
const date3 = Temporal.PlainDate.from("-002021-07-01[u-ca=gregory]");
console.log(date3.era); // bce
const date4 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
console.log(date4.era); // reiwa
Thay đổi era
Bạn chỉ có thể đặt era cho các lịch hỗ trợ chúng. Ví dụ, lịch ISO 8601 không có kỷ nguyên. Lưu ý rằng bạn phải cung cấp era và eraYear cùng nhau.
const date = Temporal.PlainDate.from("2021-07-01[u-ca=gregory]");
const newDate = date.with({ era: "bc", eraYear: 100 });
console.log(newDate.toString()); // -000099-07-01[u-ca=gregory]
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
const newDate2 = date2.with({ era: "meiji", eraYear: 1 });
console.log(newDate2.toString()); // 1868-07-01[u-ca=japanese]
Đặc tả
| Specification |
|---|
| Temporal> # sec-get-temporal.plaindate.prototype.era> |