Temporal.Instant.prototype.since()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die since()-Methode von Temporal.Instant-Instanzen gibt ein neues Temporal.Duration-Objekt zurück, das die Dauer von einem anderen Zeitpunkt (in einer Form, die durch Temporal.Instant.from() konvertierbar ist) bis zu diesem Zeitpunkt darstellt. Die Dauer ist positiv, wenn der andere Zeitpunkt vor diesem liegt, und negativ, wenn er danach liegt.

Diese Methode führt this - other aus. Um other - this auszuführen, verwenden Sie die Methode until().

Syntax

js
since(other)
since(other, options)

Parameter

other

Ein String oder eine Temporal.Instant-Instanz, die einen Zeitpunkt darstellt, der von diesem Zeitpunkt subtrahiert wird. Er wird mit dem gleichen Algorithmus wie Temporal.Instant.from() in ein Temporal.Instant-Objekt umgewandelt.

options Optional

Ein Objekt, das die Optionen für Temporal.Duration.prototype.round() enthält, darunter largestUnit, roundingIncrement, roundingMode und smallestUnit. largestUnit und smallestUnit akzeptieren nur die Einheiten: "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds" oder deren Singularformen. Für largestUnit bedeutet der Standardwert "auto" "seconds" oder smallestUnit, je nachdem, was größer ist. Der Standardwert für smallestUnit ist "nanoseconds".

Rückgabewert

Ein neues Temporal.Duration-Objekt, das die Dauer seit other bis zu diesem Zeitpunkt darstellt. Die Dauer ist positiv, wenn other vor diesem Zeitpunkt liegt, und negativ, wenn danach.

Ausnahmen

RangeError

Wird ausgelöst, wenn eine der Optionen ungültig ist.

Beispiele

Verwendung von since()

js
const lastUpdated = Temporal.Instant.fromEpochMilliseconds(1735235418000);
const now = Temporal.Now.instant();
const duration = now.since(lastUpdated, { smallestUnit: "minute" });
console.log(`Last updated ${duration.toLocaleString("en-US")} ago`);

Ausbalancieren der resultierenden Dauer

Da ein Zeitpunkt keine Kalenderinformationen enthält, vermeidet die resultierende Dauer Kalender-Dauern, die ohne Kalender- und Zeitreferenz mehrdeutig sind. Deshalb ist das Ergebnis unausgeglichen, weil hours mehr als 24 betragen kann. Um die Dauer auszugleichen, runden Sie die Dauer erneut mit der gewünschten largestUnit, indem Sie ein relativeTo übergeben, das die Kalenderinformationen enthält.

js
const lastUpdated = Temporal.Instant.fromEpochMilliseconds(1735235418000);
const now = Temporal.Now.instant();
const duration = now.since(lastUpdated, { smallestUnit: "minutes" });
const roundedDuration = duration.round({
  largestUnit: "years",
  // Use the ISO calendar; you can convert to another calendar using
  // withCalendar()
  relativeTo: now.toZonedDateTimeISO("UTC"),
});
console.log(`Last updated ${roundedDuration.toLocaleString("en-US")} ago`);

Spezifikationen

Specification
Temporal proposal
# sec-temporal.instant.prototype.since

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
since
Experimental

Legend

Tip: you can click/tap on a cell for more information.

In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
User must explicitly enable this feature.

Siehe auch