Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Temporal.Instant : méthode since()

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

La méthode since() des instances de Temporal.Instant retourne un nouvel objet Temporal.Duration représentant la durée depuis un autre instant (sous une forme convertible par Temporal.Instant.from()) jusqu'à cet instant. La durée est positive si l'autre instant est avant cet instant, et négative si après.

Cette méthode effectue this - other. Pour effectuer other - this, utilisez la méthode until().

Syntaxe

js
since(other)
since(other, options)

Paramètres

other

Une chaîne de caractères ou une instance de Temporal.Instant représentant un instant à soustraire de cet instant. Il est converti en objet Temporal.Instant en utilisant le même algorithme que Temporal.Instant.from().

options Facultatif

Un objet contenant les options pour Temporal.Duration.prototype.round(), qui inclut largestUnit, roundingIncrement, roundingMode et smallestUnit. largestUnit et smallestUnit n'acceptent que les unités : "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds", ou leurs formes singulières. Pour largestUnit, la valeur par défaut "auto" signifie "seconds" ou smallestUnit, selon la plus grande. Pour smallestUnit, la valeur par défaut est "nanoseconds".

Valeur de retour

Un nouvel objet Temporal.Duration représentant la durée depuis other jusqu'à cet instant. La durée est positive si other est avant cet instant, et négative si après.

Exceptions

RangeError

Levée si l'une des options est invalide.

Exemples

Utiliser la méthode since()

js
const lastUpdated = Temporal.Instant.fromEpochMilliseconds(1735235418000);
const now = Temporal.Now.instant();
const duration = now.since(lastUpdated, { smallestUnit: "minute" });
console.log(`Dernière mise à jour il y a ${duration.toLocaleString("fr-FR")}`);

Équilibrer la durée résultante

Parce qu'un instant ne contient pas d'informations calendaire, la durée résultante évite les durées calendaire, qui sont ambiguës sans un calendrier et une référence temporelle. Par conséquent, le résultat est déséquilibré car les heures peuvent être supérieures à 24. Pour équilibrer la durée, arrondissez à nouveau la durée résultante avec l'unité la plus grande souhaitée, en passant un relativeTo qui contient les informations du calendrier.

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",
  // Utiliser le calendrier ISO ; vous pouvez convertir vers un autre
  // calendrier en utilisant withCalendar()
  relativeTo: now.toZonedDateTimeISO("UTC"),
});
console.log(
  `Dernière mise à jour il y a ${roundedDuration.toLocaleString("fr-FR")}`,
);

Spécifications

Spécification
Temporal
# sec-temporal.instant.prototype.since

Compatibilité des navigateurs

Voir aussi