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
Zugriffs-Eigenschaft von Temporal.PlainDate
Instanzen gibt eine positive ganze Zahl zurück, die den 1-basierten Tagesindex in der Woche dieses Datums darstellt. Die Tage in einer Woche werden von 1
bis daysInWeek
durchnummeriert, wobei jede Zahl ihrem Namen zugeordnet ist. Diese Eigenschaft ist kalenderabhängig (calendar). In der Regel steht 1 für Montag im Kalender, auch wenn in einigen Regionen, die denselben Kalender verwenden, ein anderer Tag als erster Wochentag betrachtet wird (siehe Intl.Locale.prototype.getWeekInfo()
).
Alle gängig unterstützten Kalender verwenden Wochen mit 7 Tagen, und Sie können im Allgemeinen erwarten, dass diese Eigenschaft für dasselbe Datum in verschiedenen Kalendern denselben Wert zurückgibt.
Der Set-Zugriffsoperator 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 Methode add()
oder subtract()
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
Ändern von dayOfWeek
PlainDate
unterstützt das direkte Ändern von dayOfWeek
nicht. Um den Wochentag zu ändern, müssen Sie zuerst die Differenz in Tagen zu Ihrem gewünschten Wochentag ermitteln und dann add
oder subtract
verwenden, um das Datum entsprechend anzupassen. Zum Beispiel, um auf den Freitag dieser Woche (ob davor oder danach) zu wechseln:
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