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
since(other)
since(other, options)
Paramètres
other-
Une chaîne de caractères ou une instance de
Temporal.Instantreprésentant un instant à soustraire de cet instant. Il est converti en objetTemporal.Instanten utilisant le même algorithme queTemporal.Instant.from(). optionsFacultatif-
Un objet contenant les options pour
Temporal.Duration.prototype.round(), qui inclutlargestUnit,roundingIncrement,roundingModeetsmallestUnit.largestUnitetsmallestUnitn'acceptent que les unités :"hours","minutes","seconds","milliseconds","microseconds","nanoseconds", ou leurs formes singulières. PourlargestUnit, la valeur par défaut"auto"signifie"seconds"ousmallestUnit, selon la plus grande. PoursmallestUnit, 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()
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.
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
- L'objet
Temporal.Instant - L'objet
Temporal.Duration - La méthode
Temporal.Instant.prototype.add() - La méthode
Temporal.Instant.prototype.subtract() - La méthode
Temporal.Instant.prototype.until()