Signatur
Beschreibung
Die Methode equals() vergleicht eine Temporal.PlainTime-Instanz mit einer anderen Uhrzeit. Verglichen werden alle Zeitfelder bis auf die Nanosekunde genau: hour, minute, second, millisecond, microsecond und nanosecond. Stimmen alle überein, liefert die Methode true.
Das Argument other muss keine PlainTime-Instanz sein. Die Methode wandelt es vorher wie Temporal.PlainTime.from() um. Deshalb funktionieren auch ISO-8601-Zeichenketten wie "09:30", Objekte mit Zeitfeldern wie { hour: 9, minute: 30 } und Instanzen von Temporal.PlainDateTime oder Temporal.ZonedDateTime. Bei den beiden letzten zählt nur der Uhrzeit-Anteil.
Verwende equals(), wenn du nur wissen willst, ob zwei Uhrzeiten gleich sind. Brauchst du eine Reihenfolge, etwa zum Sortieren, nimm Temporal.PlainTime.compare(). Das liefert -1, 0 oder 1. a.equals(b) ist gleichwertig mit Temporal.PlainTime.compare(a, b) === 0.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $other Pflicht | Temporal.PlainTime | Temporal.PlainDateTime | Temporal.ZonedDateTime | string | object | Die Uhrzeit, mit der verglichen wird. Sie wird wie bei Temporal.PlainTime.from() umgewandelt: als ISO-Zeichenkette, als Objekt mit Zeitfeldern oder als Temporal-Objekt. |
Rückgabewert
true, wenn alle Zeitfelder bis auf die Nanosekunde übereinstimmen, sonst false.Beispiele
Zwei Uhrzeiten vergleichen
const start = Temporal.PlainTime.from("09:30:00");
const other = new Temporal.PlainTime(9, 30);
const later = Temporal.PlainTime.from("09:30:00.000000001");
console.log(start.equals(other));
console.log(start.equals(later));
console.log(start === other);
Vergleich mit Zeichenkette und Objekt
const meeting = Temporal.PlainTime.from({ hour: 14, minute: 15 });
console.log(meeting.equals("14:15"));
console.log(meeting.equals({ hour: 14, minute: 15, second: 0 }));
console.log(meeting.equals("14:15:30"));
Praxis: Prüfen, ob ein Termin zur Öffnungszeit beginnt
const opening = Temporal.PlainTime.from("08:00");
const appointments = [
Temporal.PlainDateTime.from("2025-03-10T08:00"),
Temporal.PlainDateTime.from("2025-03-10T08:45"),
Temporal.PlainDateTime.from("2025-03-11T08:00")
];
// PlainDateTime wird akzeptiert, verglichen wird nur die Uhrzeit
const firstSlot = appointments.filter((a) => opening.equals(a));
console.log(firstSlot.map((a) => a.toString()));
// Wichtig · Fallstricke
- Nicht
===oder==verwenden: Diese Operatoren vergleichen Objekt-Referenzen. Zwei gleiche Uhrzeiten ergeben damitfalse. Auch<und>werfen bei Temporal-Objekten einenTypeError, weilvalueOf()absichtlich einen Fehler auslöst. Nimm dafürTemporal.PlainTime.compare(). - Nanosekunden-Genauigkeit: Schon eine Abweichung um 1 ns ergibt
false. Willst du etwa auf Minuten genau vergleichen, runde beide Seiten vorher, z. B. mittime.round({ smallestUnit: \"minute\" }). - Ungültige Eingaben: Kann
othernicht umgewandelt werden (z. B.\"25:00\"oder eine Zeichenkette mit Tippfehler), wirft die Methode einenRangeErroroderTypeError. Sie gibt dann nicht einfachfalsezurück. - Zeitzonen: Wird eine
ZonedDateTimeübergeben, zählt deren lokale Uhrzeit in ihrer eigenen Zeitzone. Es findet keine Umrechnung statt. - Kompatibilität: Temporal ist ein neues Standard-Objekt und wird noch nicht von allen Browsern unterstützt. Für ältere Umgebungen gibt es Polyfills wie
@js-temporal/polyfillodertemporal-polyfill.