Temporal.PlainDate.prototype.dayOfWeek
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die dayOfWeek
Zugriffseigenschaft von Temporal.PlainDate
-Instanzen gibt eine positive Ganzzahl zurück, die den 1-basierten Tagesindex in der Woche dieses Datums darstellt. Tage in einer Woche sind fortlaufend von 1
bis daysInWeek
nummeriert, wobei jede Zahl ihrem Namen zugeordnet ist. Es ist abhängig vom Kalender. Im Kalender repräsentiert 1 normalerweise Montag, auch wenn die diesen Kalender verwendenden Regionen möglicherweise einen anderen Tag als ersten Wochentag betrachten (siehe Intl.Locale.prototype.getWeekInfo()
).
Alle allgemein unterstützten Kalender verwenden 7-Tage-Wochen, und Sie können im Allgemeinen erwarten, dass diese Eigenschaft für dasselbe Datum über verschiedene Kalender hinweg denselben Wert zurückgibt.
Der set-Accessor von dayOfWeek
ist undefined
. Diese Eigenschaft kann nicht direkt geändert werden. 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 zunächst den Unterschied in Tagen zum gewünschten Wochentag ermitteln und dann add
oder subtract
verwenden, um das Datum entsprechend anzupassen. Zum Beispiel, um zum Freitag dieser Woche zu wechseln (egal 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.PlainDate
Temporal.PlainDate.prototype.with()
Temporal.PlainDate.prototype.add()
Temporal.PlainDate.prototype.subtract()
Temporal.PlainDate.prototype.day
Temporal.PlainDate.prototype.dayOfYear
Temporal.PlainDate.prototype.daysInWeek
Temporal.PlainDate.prototype.weekOfYear
Temporal.PlainDate.prototype.yearOfWeek