Temporal.PlainDate.prototype.dayOfWeek
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 dayOfWeek của các instance Temporal.PlainDate trả về một số nguyên dương đại diện cho chỉ mục ngày trong tuần dựa trên 1 của ngày này. Các ngày trong tuần được đánh số tuần tự từ 1 đến daysInWeek, với mỗi số ánh xạ tới tên của nó. Nó phụ thuộc vào lịch. 1 thường đại diện cho Thứ Hai trong lịch, ngay cả khi các locale sử dụng lịch có thể coi một ngày khác là ngày đầu tiên của tuần (xem Intl.Locale.prototype.getWeekInfo()).
Tất cả các lịch thường được hỗ trợ đều sử dụng tuần 7 ngày, và bạn thường có thể mong đợi thuộc tính này trả về cùng giá trị cho cùng ngày trên các lịch khác nhau.
Set accessor của dayOfWeek là undefined. Bạn không thể thay đổi thuộc tính này trực tiếp. Để tạo đối tượng Temporal.PlainDate mới với giá trị dayOfWeek mong muốn, sử dụng phương thức add() hoặc subtract() với số days phù hợp.
Ví dụ
>Sử dụng dayOfWeek
const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfWeek); // 4; Thứ Năm
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfWeek); // 4
Thay đổi dayOfWeek
PlainDate không hỗ trợ thay đổi dayOfWeek trực tiếp. Để thay đổi ngày trong tuần, bạn cần tính toán sự khác biệt về số ngày so với ngày trong tuần mong muốn, sau đó sử dụng add hoặc subtract để điều chỉnh ngày tháng phù hợp. Ví dụ, để thay đổi sang Thứ Sáu của tuần này (dù trước hay sau):
function getDayInSameWeek(date, destDayOfWeek) {
return date.add({ days: destDayOfWeek - date.dayOfWeek });
}
console.log(
getDayInSameWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-07-02
console.log(
getDayInSameWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-02
Để thay đổi sang Thứ Sáu tiếp theo:
function getNextDayInWeek(date, destDayOfWeek) {
const distance = destDayOfWeek - date.dayOfWeek;
return date.add({
days: distance < 0 ? date.daysInWeek + distance : distance,
});
}
console.log(
getNextDayInWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-07-02
console.log(
getNextDayInWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-09
Để thay đổi sang Thứ Sáu trước đó:
function getPreviousDayInWeek(date, destDayOfWeek) {
const distance = date.dayOfWeek - destDayOfWeek;
return date.subtract({
days: distance < 0 ? date.daysInWeek + distance : distance,
});
}
console.log(
getPreviousDayInWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-06-25
console.log(
getPreviousDayInWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-02
Đặc tả
| Specification |
|---|
| Temporal> # sec-get-temporal.plaindate.prototype.dayofweek> |
Tương thích trình duyệt
Xem thêm
Temporal.PlainDateTemporal.PlainDate.prototype.with()Temporal.PlainDate.prototype.add()Temporal.PlainDate.prototype.subtract()Temporal.PlainDate.prototype.dayTemporal.PlainDate.prototype.dayOfYearTemporal.PlainDate.prototype.daysInWeekTemporal.PlainDate.prototype.weekOfYearTemporal.PlainDate.prototype.yearOfWeek