Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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

js
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):

js
for (let month = 1; month <= year.monthsInYear; month++) {
  const monthDate = year.with({ month });
}

Ändern des Monats

js
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.

js
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:

js
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