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
Accessor-Eigenschaft von Temporal.PlainDate
Instanzen gibt eine positive ganze Zahl 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 kalender-abhängig. Normalerweise repräsentiert 1 den Montag im Kalender, auch wenn in den Kalender verwendenden Lokalen ein anderer Tag als erster Wochentag angesehen werden kann (siehe Intl.Locale.prototype.getWeekInfo()
).
Alle allgemein unterstützten Kalender verwenden 7-Tage-Wochen, und Sie können im Allgemeinen erwarten, dass diese Eigenschaft denselben Wert für dasselbe Datum über verschiedene Kalender hinweg 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 an 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
Ändern von dayOfWeek
PlainDate
unterstützt das direkte Ändern von dayOfWeek
nicht. Um den Tag der Woche zu ändern, müssen Sie zuerst den Unterschied in Tagen zu Ihrem gewünschten Tag der Woche ermitteln und dann add
oder subtract
verwenden, um das Datum entsprechend anzupassen. Zum Beispiel, um auf den Freitag dieser Woche zu wechseln (egal ob vorher oder nachher):
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 auf den 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 auf den vorhergehenden 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 proposal # sec-get-temporal.plaindate.prototype.dayofweek |
Browser-Kompatibilität
BCD tables only load in the browser
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