Start · Sprachen · JavaScript · Referenz · Temporal.PlainTime.compare()

Temporal.PlainTime.compare()

Methode

Vergleicht zwei Uhrzeiten und gibt <code>-1</code>, <code>0</code> oder <code>1</code> zurück, je nachdem, ob die erste vor, gleich oder nach der zweiten liegt.

seit JavaScript ES2026 (Temporal); Firefox 139+, Chrome 144+, sons Kategorie: method-property

Signatur

Temporal.PlainTime.compare(time1, time2)

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

Typ
number
Beschreibung
-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"));
-1 1 0

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()));
[ '08:05:00', '08:30:00', '12:15:00', '14:00:00' ]

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")));
false true false

// Wichtig · Fallstricke

  • Keine Vergleichsoperatoren: < und > werfen bei Temporal-Objekten einen TypeError, weil valueOf() absichtlich einen Fehler auslöst. Verwenden Sie compare() oder equals().
  • 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 Sie Temporal.PlainDateTime oder Temporal.ZonedDateTime.
  • Ungültige Zeichenketten oder Objekte ohne gültige Felder führen zu einem RangeError oder TypeError.
  • 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/polyfill oder temporal-polyfill.