Temporal.ZonedDateTime.compare()
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more support for this feature? Tell us why.
Die Temporal.ZonedDateTime.compare() statische Methode gibt eine Zahl (-1, 0 oder 1) zurück, die anzeigt, ob die erste Datum-Zeit vor, gleich oder nach der zweiten Datum-Zeit liegt. Sie ist äquivalent zum Vergleich der epochNanoseconds der beiden Datum-Zeiten.
Syntax
Temporal.ZonedDateTime.compare(dateTime1, dateTime2)
Parameter
dateTime1-
Ein String, ein Objekt oder eine Instanz von
Temporal.ZonedDateTime, die die erste zu vergleichende Datum-Zeit darstellt. Es wird mit dem gleichen Algorithmus wieTemporal.ZonedDateTime.from()in einTemporal.ZonedDateTime-Objekt umgewandelt. dateTime2-
Die zweite zu vergleichende Datum-Zeit, die unter Verwendung des gleichen Algorithmus wie
dateTime1in einTemporal.ZonedDateTime-Objekt umgewandelt wird.
Rückgabewert
Gibt -1 zurück, wenn dateTime1 vor dateTime2 liegt, 0, wenn sie gleich sind, und 1, wenn dateTime1 nach dateTime2 kommt. Sie werden durch ihre zugrunde liegenden Instant-Werte verglichen, ohne Berücksichtigung ihrer Kalender oder Zeitzonen.
Beispiele
>Verwendung von 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
Sortieren eines Arrays von Datum-Zeiten
Der Zweck dieser compare() Funktion ist es, als Comparator zu dienen, der an Array.prototype.sort() und verwandte Funktionen übergeben wird.
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]" ]
Beachten Sie, dass sie durch ihre Instant-Werte verglichen werden. In dem sehr seltenen Fall, dass Sie sie nach ihren Wanduhrenzeiten vergleichen möchten, wandeln Sie sie zuerst in PlainDateTime um.
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]" ]
Spezifikationen
| Spezifikation |
|---|
| Temporal> # sec-temporal.zoneddatetime.compare> |