Signatur
Beschreibung
Temporal.PlainTime.from() ist der übliche Weg, eine Uhrzeit ohne Datum und ohne Zeitzone zu erzeugen, also eine reine Zeitangabe wie „09:30“. Anders als der Konstruktor new Temporal.PlainTime(), der nur einzelne Zahlen als Argumente annimmt, versteht from() mehrere Eingabeformen:
- einen String im Format RFC 9557 / ISO 8601, z. B.
"14:30","T14:30:15.250"oder"2024-03-15T08:45:00[Europe/Berlin]". Aus einem vollständigen Datum-Zeit-String wird nur der Zeitteil übernommen. - ein Objekt mit Zeitfeldern (
hour,minute,second,millisecond,microsecond,nanosecond). Mindestens ein Feld muss vorhanden sein. Fehlende Felder werden auf0gesetzt. - ein Temporal-Objekt:
Temporal.PlainTimewird kopiert, beiTemporal.PlainDateTimeundTemporal.ZonedDateTimewird die Uhrzeit übernommen.
Die Methode eignet sich für Öffnungszeiten, Wecker, Stundenpläne, Werte aus <input type="time"> und alle Fälle, in denen nur die Uhrzeit zählt. Das Ergebnis ist unveränderlich (immutable). Methoden wie add() oder with() liefern immer ein neues Objekt zurück.
Mit der Option overflow legen Sie fest, was bei Werten außerhalb des gültigen Bereichs passiert: "constrain" (Standard) setzt sie auf den nächsten gültigen Wert, "reject" wirft einen RangeError.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $info Pflicht | string | Object | Temporal.PlainTime | Temporal.PlainDateTime | Temporal.ZonedDateTime | Die Quelle der Uhrzeit: ein RFC-9557-/ISO-8601-String, ein Objekt mit mindestens einem der Felder hour (0–23), minute (0–59), second (0–59), millisecond, microsecond oder nanosecond (je 0–999) oder ein Temporal-Objekt mit Uhrzeit. |
|
| $options | Object | undefined | Optionales Objekt mit der Eigenschaft overflow. |
| $options.overflow | "constrain" | "reject" | "constrain" | Legt fest, wie Werte außerhalb des Bereichs behandelt werden. "constrain" setzt sie auf den gültigen Bereich, "reject" wirft einen RangeError. Gilt nur für Objekt-Eingaben. Bei Strings muss der Wert zwar gültig sein, hat aber keine Wirkung. |
Rückgabewert
Temporal.PlainTime-Objekt. Das gilt auch, wenn ein Temporal.PlainTime übergeben wird: Sie erhalten dann eine Kopie, nicht dieselbe Instanz.Beispiele
Aus Strings und Objekten erzeugen
const a = Temporal.PlainTime.from("14:30");
const b = Temporal.PlainTime.from("T08:15:30.125");
const c = Temporal.PlainTime.from({ hour: 9, minute: 5 });
// Aus einem Datum-Zeit-String wird nur die Uhrzeit übernommen
const d = Temporal.PlainTime.from("2024-03-15T18:45:00+01:00[Europe/Berlin]");
console.log(a.toString());
console.log(b.toString(), b.millisecond);
console.log(c.toString());
console.log(d.toString());
Überlauf: constrain vs. reject
// Standard: Werte werden in den gültigen Bereich gesetzt
const begrenzt = Temporal.PlainTime.from({ hour: 25, minute: 70 });
console.log(begrenzt.toString());
try {
Temporal.PlainTime.from({ hour: 25 }, { overflow: "reject" });
} catch (err) {
console.log(err.name);
}
Wert aus <input type="time"> prüfen
const oeffnet = Temporal.PlainTime.from("09:00");
const schliesst = Temporal.PlainTime.from("18:30");
const istGeoeffnet = (eingabe) => {
const zeit = Temporal.PlainTime.from(eingabe); // z. B. input.value
return Temporal.PlainTime.compare(zeit, oeffnet) >= 0 &&
Temporal.PlainTime.compare(zeit, schliesst) < 0;
};
console.log(istGeoeffnet("12:15"));
console.log(istGeoeffnet("19:00"));
Uhrzeit aus ZonedDateTime übernehmen
const jetztBerlin = Temporal.ZonedDateTime.from("2024-06-01T07:45:12[Europe/Berlin]");
const uhrzeit = Temporal.PlainTime.from(jetztBerlin);
console.log(uhrzeit.toString());
console.log(uhrzeit.add({ minutes: 20 }).toString());