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 gibt eine Zahl (-1, 0 oder 1) zurück, die anzeigt, ob der erste Jahr-Monat vor, gleich oder nach dem zweiten Jahr-Monat liegt. Sie ist äquivalent zum Vergleich ihrer zugrunde liegenden ISO 8601-Daten. Zwei Jahr-Monate aus unterschiedlichen Kalendern können als gleich betrachtet werden, wenn sie am selben ISO-Datum beginnen.
Note:
PlainYearMonth
-Objekte behalten einen Referenz-ISO-Tag, der auch im Vergleich verwendet wird. Dieser Tag wird automatisch gesetzt, wenn Sie die MethodeTemporal.PlainYearMonth.from()
verwenden, kann aber auch manuell über den KonstruktorTemporal.PlainYearMonth()
festgelegt werden. Dadurch können zwei äquivalente Jahr-Monate als unterschiedlich betrachtet werden, wenn sie unterschiedliche Referenztage haben. Aus diesem Grund sollten Sie den Konstruktor direkt vermeiden und stattdessen diefrom()
-Methode bevorzugen.
Syntax
Temporal.PlainYearMonth.compare(yearMonth1, yearMonth2)
Parameter
yearMonth1
-
Ein String, ein Objekt oder eine
Temporal.PlainYearMonth
-Instanz, die den ersten Jahr-Monat darstellt, der verglichen werden soll. Sie wird mit demselben Algorithmus in einTemporal.PlainYearMonth
-Objekt umgewandelt wieTemporal.PlainYearMonth.from()
. yearMonth2
-
Der zweite Jahr-Monat, der verglichen werden soll, wird mit demselben Algorithmus wie
yearMonth1
in einTemporal.PlainYearMonth
-Objekt umgewandelt.
Rückgabewert
Gibt -1
zurück, wenn yearMonth1
vor yearMonth2
liegt, 0
, wenn beide gleich sind, und 1
, wenn yearMonth2
nach yearMonth1
liegt. Sie werden anhand ihrer zugrunde liegenden Datumswerte verglichen (in der Regel der erste Tag des Monats), wobei ihre Kalender ignoriert werden.
Beispiele
Verwenden 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
Vergleichen 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",
});
const ym3 = Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "hebrew",
});
console.log(ym1.toString()); // "2021-08"
console.log(ym2.toString()); // "2582-12-18[u-ca=islamic]"
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 besteht darin, als Vergleichsfunktion zu dienen, die an Array.prototype.sort()
und verwandte Funktionen übergeben werden kann.
const months = [
Temporal.PlainYearMonth.from({ year: 2021, month: 8 }),
Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "islamic",
}),
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-18[u-ca=islamic]" ]
Spezifikationen
Specification |
---|
Temporal proposal # sec-temporal.plainyearmonth.compare |
Browser-Kompatibilität
BCD tables only load in the browser