Signatur
Beschreibung
Temporal.PlainTime.compare() ist eine statische Methode. Sie vergleicht zwei Wanduhr-Zeiten ohne Datum und ohne Zeitzone. Verglichen wird der Reihe nach nach Stunde, Minute, Sekunde, Millisekunde, Mikrosekunde und Nanosekunde.
Die Signatur passt genau zur Vergleichsfunktion von Array.prototype.sort(). Deshalb können Sie Temporal.PlainTime.compare direkt übergeben, um Listen von Uhrzeiten chronologisch zu sortieren, zum Beispiel Termine, Öffnungszeiten oder Fahrpläne.
Beide Argumente dürfen Temporal.PlainTime-Instanzen sein. Möglich sind auch Objekte mit Zeitfeldern wie { hour, minute } oder Zeichenketten im Format RFC 9557/ISO 8601 wie "14:30". Diese werden intern wie mit Temporal.PlainTime.from() umgewandelt. Wenn Sie nur wissen wollen, ob zwei Zeiten gleich sind, ist Temporal.PlainTime.prototype.equals() besser lesbar.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $time1 Pflicht | Temporal.PlainTime | Object | string | Die erste Uhrzeit. Wird bei Bedarf wie mit Temporal.PlainTime.from() umgewandelt. |
|
| $time2 Pflicht | Temporal.PlainTime | Object | string | Die zweite Uhrzeit, gegen die time1 verglichen wird. Wird genauso umgewandelt wie time1. |
Rückgabewert
-1, wenn time1 vor time2 liegt; 0, wenn beide Zeiten gleich sind; 1, wenn time1 nach time2 liegt.Beispiele
Zwei Uhrzeiten vergleichen
const start = Temporal.PlainTime.from("09:15");
const ende = Temporal.PlainTime.from("17:45:30");
console.log(Temporal.PlainTime.compare(start, ende));
console.log(Temporal.PlainTime.compare(ende, start));
console.log(Temporal.PlainTime.compare(start, "09:15:00"));
Termine chronologisch sortieren
const termine = ["14:00", "08:30", "12:15", "08:05"]
.map((t) => Temporal.PlainTime.from(t));
termine.sort(Temporal.PlainTime.compare);
console.log(termine.map((t) => t.toString()));
Prüfen, ob ein Geschäft geöffnet ist
const oeffnet = Temporal.PlainTime.from({ hour: 8 });
const schliesst = Temporal.PlainTime.from({ hour: 18, minute: 30 });
const istGeoeffnet = (zeit) =>
Temporal.PlainTime.compare(zeit, oeffnet) >= 0 &&
Temporal.PlainTime.compare(zeit, schliesst) < 0;
console.log(istGeoeffnet(Temporal.PlainTime.from("07:59")));
console.log(istGeoeffnet(Temporal.PlainTime.from("12:00")));
console.log(istGeoeffnet(Temporal.PlainTime.from("18:30")));
// Wichtig · Fallstricke
- Keine Vergleichsoperatoren:
<und>werfen bei Temporal-Objekten einenTypeError, weilvalueOf()absichtlich einen Fehler auslöst. Verwenden Siecompare()oderequals(). - Kein Tageswechsel: Die Methode kennt keinen Datumskontext.
"23:00"liegt immer nach"01:00", auch wenn 01:00 eigentlich am Folgetag gemeint ist. Für Zeiträume über Mitternacht nehmen SieTemporal.PlainDateTimeoderTemporal.ZonedDateTime. - Ungültige Zeichenketten oder Objekte ohne gültige Felder führen zu einem
RangeErroroderTypeError. - Rufen Sie die Methode statisch auf (
Temporal.PlainTime.compare(a, b)), nicht auf einer Instanz. - Kompatibilität: Temporal ist ab ES2026 Teil des Standards. Es wird in Firefox 139+ und in Chrome/Edge 144+ unterstützt. Safari unterstützt es noch nicht vollständig. Für ältere Umgebungen gibt es einen Polyfill, etwa
@js-temporal/polyfillodertemporal-polyfill.