Temporal.PlainDate.prototype.month
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die month Accessor-Eigenschaft von Temporal.PlainDate Instanzen gibt eine positive Ganzzahl zurück, die den 1-basierten Monatsindex im Jahr dieses Datums darstellt. Der erste Monat dieses Jahres ist 1, und der letzte Monat ist die monthsInYear. Es ist vom Kalender abhängig.
Beachten Sie, dass im Gegensatz zu Date.prototype.getMonth() der Index 1-basiert ist. Wenn der Kalender Schaltmonate hat, dann kann der Monat mit dem gleichen monthCode in verschiedenen Jahren unterschiedliche month-Indizes haben.
Hinweis:
Verwenden Sie diese Eigenschaft nicht, um den tatsächlichen Monat, einschließlich seines Namens, zu identifizieren. Verwenden Sie dafür monthCode. Verwenden Sie month nur, um Monate im Kontext eines Jahres zu identifizieren oder deren Reihenfolge zu bestimmen.
Der set-Accessor von month ist undefined. Sie können diese Eigenschaft nicht direkt ändern. Verwenden Sie die with() Methode, um ein neues Temporal.PlainDate-Objekt mit dem gewünschten neuen Wert zu erstellen.
Beispiele
>Verwendung von month
const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.monthCode); // "M07"
console.log(date.month); // 7
const date2 = Temporal.PlainDate.from("2021-05-01[u-ca=chinese]");
console.log(date2.monthCode); // "M03"
console.log(date2.month); // 3; it is March 20 in the Chinese calendar
const date3 = Temporal.PlainDate.from("2023-05-01[u-ca=chinese]");
console.log(date3.monthCode); // "M03"
console.log(date3.month); // 4, although it is also March (M03)!
const date4 = Temporal.PlainDate.from("2023-04-01[u-ca=chinese]");
console.log(date4.monthCode); // "M02L"
console.log(date4.month); // 3, this month is a leap month, i.e. a duplicate February
Durchlaufen aller Monate in einem Jahr
const year = Temporal.PlainDate.from("2021-07-14"); // An arbitrary date in the year
for (
let month = year.with({ month: 1 });
month.year === year.year;
month = month.add({ months: 1 })
) {
console.log(month.month);
}
Alternativ ist dies auch eine sichere Möglichkeit (im Gegensatz zum Tagesbeispiel):
for (let month = 1; month <= year.monthsInYear; month++) {
const monthDate = year.with({ month });
}
Ändern des Monats
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.with({ month: 2 });
console.log(newDate.toString()); // 2021-02-01
Sie können auch add() oder subtract() verwenden, um eine bestimmte Anzahl von Monaten vom aktuellen Datum zu verschieben.
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.add({ months: 3 });
console.log(newDate.toString()); // 2021-10-01
Standardmäßig beschränkt with() den Tag auf den Bereich der gültigen Werte. Beide der folgenden Optionen setzen den Monat auf den letzten Monat des Jahres:
const date = Temporal.PlainDate.from("2021-07-01");
const lastMonth = date.with({ month: date.monthsInYear }); // 2021-12-01
const lastMonth2 = date.with({ month: Number.MAX_VALUE }); // 2021-12-01
Spezifikationen
| Specification |
|---|
| Temporal> # sec-get-temporal.plaindate.prototype.month> |
Browser-Kompatibilität
Siehe auch
Temporal.PlainDateTemporal.PlainDate.prototype.with()Temporal.PlainDate.prototype.add()Temporal.PlainDate.prototype.subtract()Temporal.PlainDate.prototype.yearTemporal.PlainDate.prototype.dayTemporal.PlainDate.prototype.monthCodeTemporal.PlainDate.prototype.daysInMonthTemporal.PlainDate.prototype.monthsInYear