Temporal.ZonedDateTime : méthode statique compare()
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
Want more support for this feature? Tell us why.
La méthode statique Temporal.ZonedDateTime.compare() retourne un nombre (-1, 0 ou 1) indiquant si la première date et heure vient avant, est la même que, ou vient après la deuxième date et heure. Elle est équivalente à la comparaison des epochNanoseconds des deux dates et heures.
Syntaxe
Temporal.ZonedDateTime.compare(dateTime1, dateTime2)
Paramètres
dateTime1-
Une chaîne de caractères, un objet ou une instance de
Temporal.ZonedDateTimereprésentant la première date et l'heure à comparer. Elle est convertie en objetTemporal.ZonedDateTimeen utilisant le même algorithme queTemporal.ZonedDateTime.from(). dateTime2-
Une chaîne de caractères, un objet ou une instance de
Temporal.ZonedDateTimereprésentant la deuxième date et l'heure à comparer. Elle est convertie en objetTemporal.ZonedDateTimeen utilisant le même algorithme quedateTime1.
Valeur de retour
Retourne -1 si dateTime1 vient avant dateTime2, 0 s'ils sont identiques, et 1 si dateTime1 vient après dateTime2. Ils sont comparés par leurs valeurs d'instant sous-jacentes, en ignorant leurs calendriers ou fuseaux horaires.
Exemples
>Utiliser Temporal.ZonedDateTime.compare()
const dt1 = Temporal.ZonedDateTime.from("2021-08-01T01:00:00[Europe/London]");
const dt2 = Temporal.ZonedDateTime.from("2021-08-02T00:00:00[Europe/London]");
console.log(Temporal.ZonedDateTime.compare(dt1, dt2)); // -1
const dt3 = Temporal.ZonedDateTime.from("2021-08-01T00:00:00[Europe/London]");
console.log(Temporal.ZonedDateTime.compare(dt1, dt3)); // 1
Trier un tableau de dates et heures
Le but de cette fonction compare() est d'agir comme un comparateur à passer à Array.prototype.sort() et aux fonctions associées.
const dateTimes = [
Temporal.ZonedDateTime.from("2021-08-01T00:00:00[America/New_York]"),
Temporal.ZonedDateTime.from("2021-08-01T00:00:00[Asia/Hong_Kong]"),
Temporal.ZonedDateTime.from("2021-08-01T00:00:00[Europe/London]"),
];
dateTimes.sort(Temporal.ZonedDateTime.compare);
console.log(dateTimes.map((d) => d.toString()));
// [ "2021-08-01T00:00:00+08:00[Asia/Hong_Kong]", "2021-08-01T00:00:00+01:00[Europe/London]", "2021-08-01T00:00:00-04:00[America/New_York]" ]
On notera qu'ils sont comparés par leurs valeurs d'instant. Dans le cas très rare où vous souhaitez les comparer par leurs heures murales, convertissez-les d'abord en PlainDateTime.
const dateTimes = [
Temporal.ZonedDateTime.from("2021-08-01T00:00:00[America/New_York]"),
Temporal.ZonedDateTime.from("2021-08-01T00:00:00[Asia/Hong_Kong]"),
Temporal.ZonedDateTime.from("2021-08-01T00:00:00[Europe/London]"),
];
dateTimes.sort((a, b) =>
Temporal.PlainDateTime.compare(a.toPlainDateTime(), b.toPlainDateTime()),
);
console.log(dateTimes.map((d) => d.toString()));
// [ "2021-08-01T00:00:00-04:00[America/New_York]", "2021-08-01T00:00:00+08:00[Asia/Hong_Kong]", "2021-08-01T00:00:00+01:00[Europe/London]" ]
Spécifications
| Spécification |
|---|
| Temporal> # sec-temporal.zoneddatetime.compare> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal.ZonedDateTime - La méthode
Temporal.ZonedDateTime.prototype.equals()