Temporal.PlainDate.prototype.dayOfWeek
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die dayOfWeek Zugriffseigenschaft von Temporal.PlainDate-Instanzen gibt eine positive Ganzzahl zurück, die den auf 1 basierenden Tagesindex in der Woche dieses Datums darstellt. Tage in einer Woche sind sequenziell von 1 bis daysInWeek nummeriert, wobei jede Zahl ihrem Namen zugeordnet ist. Es ist vom Kalender abhängig. In den meisten Kalendern steht die 1 für Montag, selbst wenn in den Kalendern verwendeten Lokalen ein anderer Tag als erster Tag der Woche gilt (siehe Intl.Locale.prototype.getWeekInfo()).
Alle gängigen unterstützten Kalender verwenden Wochen mit 7 Tagen, und Sie können im Allgemeinen erwarten, dass diese Eigenschaft denselben Wert für dasselbe Datum in verschiedenen Kalendern zurückgibt.
Der Set-Accessor von dayOfWeek ist undefined. Sie können diese Eigenschaft nicht direkt ändern. Um ein neues Temporal.PlainDate-Objekt mit dem gewünschten neuen dayOfWeek-Wert zu erstellen, verwenden Sie die add()- oder subtract()-Methode mit der entsprechenden Anzahl von days.
Beispiele
Verwendung von dayOfWeek
const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfWeek); // 4; Thursday
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfWeek); // 4
Änderung von dayOfWeek
PlainDate unterstützt keine direkte Änderung von dayOfWeek. Um den Wochentag zu ändern, müssen Sie zuerst den Unterschied in Tagen zu Ihrem gewünschten Wochentag herausfinden und dann add oder subtract verwenden, um das Datum entsprechend anzupassen. Um beispielsweise auf den Freitag dieser Woche zu wechseln (ob davor oder danach):
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
Um zum nächsten Freitag zu wechseln:
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
Um zum vorherigen Freitag zu wechseln:
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
Spezifikationen
| Specification |
|---|
| Temporal # sec-get-temporal.plaindate.prototype.dayofweek |
Browser-Kompatibilität
Siehe auch
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