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

Temporal.PlainTime.from()

Methode

Erstellt ein neues <code>Temporal.PlainTime</code> aus einem Objekt mit Zeitfeldern, einem vorhandenen Temporal-Objekt oder einem RFC-9557- bzw. ISO-8601-String.

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

Signatur

Temporal.PlainTime.from(info[, options])

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 auf 0 gesetzt.
  • ein Temporal-Objekt: Temporal.PlainTime wird kopiert, bei Temporal.PlainDateTime und Temporal.ZonedDateTime wird 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

Typ
Temporal.PlainTime
Beschreibung
Ein neues 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());
14:30:00 08:15:30.125 125 09:05:00 18:45:00

Ü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);
}
23:59:00 RangeError

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

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());
07:45:12 08:05:12