Temporal.PlainDate.prototype.dayOfYear
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 dayOfYear
Eigenschaft von Instanzen von Temporal.PlainDate
gibt eine positive Ganzzahl zurück, die den 1-basierten Tagesindex im Jahr dieses Datums darstellt. Der erste Tag dieses Jahres ist 1
, und der letzte Tag ist die daysInYear
. Es hängt vom Kalender ab.
Der set Accessor von dayOfYear
ist undefined
. Sie können diese Eigenschaft nicht direkt ändern. Um ein neues Temporal.PlainDate
-Objekt mit dem gewünschten neuen Wert für dayOfYear
zu erstellen, verwenden Sie die add()
oder subtract()
Methode mit der entsprechenden Anzahl von days
.
Beispiele
Verwendung von dayOfYear
const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfYear); // 182
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfYear); // 140
const date3 = Temporal.PlainDate.from("2020-07-01");
console.log(date3.dayOfYear); // 183; 2020 is a leap year
Änderung von dayOfYear
PlainDate
unterstützt die direkte Änderung von dayOfYear
nicht. Um den Tag des Jahres zu ändern, müssen Sie zuerst die Differenz in Tagen zu Ihrem gewünschten Tag des Jahres ermitteln und dann add
oder subtract
verwenden, um das Datum entsprechend anzupassen. Möchten Sie beispielsweise den 100. Tag dieses Jahres ändern (ob davor oder danach):
function getDayInSameYear(date, destDayOfYear) {
return date.add({ days: destDayOfYear - date.dayOfYear });
}
console.log(
getDayInSameYear(Temporal.PlainDate.from("2021-07-01"), 100).toString(),
); // 2021-04-10
console.log(
getDayInSameYear(Temporal.PlainDate.from("2021-01-01"), 100).toString(),
); // 2021-04-10
console.log(
getDayInSameYear(Temporal.PlainDate.from("2020-01-01"), 100).toString(),
); // 2020-04-09
Standardmäßig schränkt with()
den Tag auf den Bereich gültiger Werte ein. Sie können also immer { month: 1, day: 1 }
verwenden, um den Tag auf den ersten Tag des Jahres zu setzen, selbst wenn der erste Tag nicht die Nummer 1
hat. Ebenso wird das Folgende den Tag auf den letzten Tag des Jahres setzen, unabhängig davon, wie viele Tage im letzten Monat oder Jahr sind:
const date = Temporal.PlainDate.from("2021-07-01");
const lastDay = date.with({ month: Number.MAX_VALUE, day: Number.MAX_VALUE }); // 2021-12-31
Spezifikationen
Specification |
---|
Temporal # sec-get-temporal.plaindate.prototype.dayofyear |