Temporal.ZonedDateTime.compare()
Базовая реализация Ограниченная доступность
Эта функция не является базовой, потому что она не работает в некоторых из наиболее широко используемых браузеров.
Статический метод Temporal.ZonedDateTime.compare() возвращает число (-1, 0 или 1), указывающее, предшествует ли первая дата и время второй дате и времени, совпадает ли с ней или следует за ней. Это эквивалентно сравнению epochNanoseconds двух дат и времени.
Синтаксис
Temporal.ZonedDateTime.compare(dateTime1, dateTime2)
Параметры
-
dateTime1 - Строка, объект или экземпляр
Temporal.ZonedDateTime, представляющий первую дату и время для сравнения. Он преобразуется в объектTemporal.ZonedDateTime, используя тот же алгоритм, что иTemporal.ZonedDateTime.from(). -
dateTime2 - Вторая дата и время для сравнения, преобразованная в объект
Temporal.ZonedDateTime, используя тот же алгоритм, что иdateTime1.
Возвращаемое значение
Возвращает -1, если dateTime1 предшествует dateTime2, 0, если они совпадают, и 1, если dateTime1 следует за dateTime2. Они сравниваются по их основным значениям момента времени (instant values), игнорируя их календари или часовые пояса.
Примеры
Использование 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
Сортировка массива дат и времени
Целью этой функции compare() является служить компаратором для передачи в Array.prototype.sort() и связанные функции.
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]" ]
Обратите внимание, что они сравниваются по их значениям момента времени (instant values). В очень редких случаях, когда вы хотите сравнить их по их времени настенных часов (wall-clock times), сначала преобразуйте их в 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]" ]
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal.zoneddatetime.compare |
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
compare |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
Смотри также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/compare