Temporal.PlainYearMonth.compare()
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 Temporal.PlainYearMonth.compare()
statische Methode liefert eine Zahl (-1, 0 oder 1) zurück, die anzeigt, ob das erste Jahr-Monat vor, gleich oder nach dem zweiten Jahr-Monat kommt. Es ist äquivalent zum Vergleich ihrer zugrunde liegenden ISO 8601-Daten. Zwei Jahr-Monate aus verschiedenen Kalendern können als gleich betrachtet werden, wenn sie am selben ISO-Datum beginnen.
Hinweis:>PlainYearMonth
-Objekte verfolgen einen Referenz-ISO-Tag, der auch im Vergleich verwendet wird. Dieser Tag wird automatisch gesetzt, wenn die Temporal.PlainYearMonth.from()
Methode verwendet wird, kann aber manuell mit dem Temporal.PlainYearMonth()
-Konstruktor gesetzt werden, wodurch zwei äquivalente Jahr-Monate als verschieden betrachtet werden, wenn sie unterschiedliche Referenztage haben. Aus diesem Grund sollten Sie vermeiden, den Konstruktor direkt zu verwenden und stattdessen die from()
-Methode bevorzugen.
Syntax
Temporal.PlainYearMonth.compare(yearMonth1, yearMonth2)
Parameter
yearMonth1
-
Ein String, ein Objekt oder eine
Temporal.PlainYearMonth
Instanz, die das erste Jahr-Monat zum Vergleichen darstellt. Es wird mit demselben Algorithmus in einTemporal.PlainYearMonth
-Objekt umgewandelt wieTemporal.PlainYearMonth.from()
. yearMonth2
-
Das zweite Jahr-Monat zum Vergleichen, umgewandelt in ein
Temporal.PlainYearMonth
-Objekt mit demselben Algorithmus wieyearMonth1
.
Rückgabewert
Gibt -1
zurück, wenn yearMonth1
vor yearMonth2
kommt, 0
wenn sie gleich sind, und 1
wenn yearMonth1
nach yearMonth2
kommt. Sie werden anhand ihrer zugrunde liegenden Datumswerte verglichen (normalerweise der erste Tag des Monats), wobei ihre Kalender ignoriert werden.
Beispiele
Verwendung von Temporal.PlainYearMonth.compare()
const ym1 = Temporal.PlainYearMonth.from("2021-08");
const ym2 = Temporal.PlainYearMonth.from("2021-09");
console.log(Temporal.PlainYearMonth.compare(ym1, ym2)); // -1
const ym3 = Temporal.PlainYearMonth.from("2021-07");
console.log(Temporal.PlainYearMonth.compare(ym1, ym3)); // 1
Vergleich von Jahr-Monaten in verschiedenen Kalendern
const ym1 = Temporal.PlainYearMonth.from({ year: 2021, month: 8 });
const ym2 = Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "islamic-umalqura",
});
const ym3 = Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "hebrew",
});
console.log(ym1.toString()); // "2021-08"
console.log(ym2.toString()); // "2582-12-17[u-ca=islamic-umalqura]"
console.log(ym3.toString()); // "-001739-04-06[u-ca=hebrew]"
console.log(Temporal.PlainYearMonth.compare(ym1, ym2)); // -1
console.log(Temporal.PlainYearMonth.compare(ym1, ym3)); // 1
Sortieren eines Arrays von Jahr-Monaten
Der Zweck dieser compare()
-Funktion ist es, als Vergleichsfunktion zu dienen, die an Array.prototype.sort()
und verwandte Funktionen übergeben wird.
const months = [
Temporal.PlainYearMonth.from({ year: 2021, month: 8 }),
Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "islamic-umalqura",
}),
Temporal.PlainYearMonth.from({ year: 2021, month: 8, calendar: "hebrew" }),
];
months.sort(Temporal.PlainYearMonth.compare);
console.log(months.map((d) => d.toString()));
// [ "-001739-04-06[u-ca=hebrew]", "2021-08", "2582-12-17[u-ca=islamic-umalqura]" ]
Spezifikationen
Specification |
---|
Temporal # sec-temporal.plainyearmonth.compare |