Temporal.PlainYearMonth.compare()
Baseline Ограниченная доступность
Эта функция не является Baseline, поскольку она не работает в некоторых наиболее широко используемых браузерах.
Статический метод Temporal.PlainYearMonth.compare() возвращает число (-1, 0 или 1), указывающее, идет ли первый год-месяц перед вторым, совпадает ли он с ним или идет после него. Это эквивалентно сравнению их базовых дат ISO 8601. Два года-месяца из разных календарей могут считаться равными, если они начинаются в один и тот же день по ISO.
Примечание: Объекты PlainYearMonth отслеживают эталонный день ISO, который также используется при сравнении. Этот день автоматически устанавливается при использовании метода Temporal.PlainYearMonth.from(), но может быть установлен вручную с помощью конструктора Temporal.PlainYearMonth(), что приводит к тому, что два эквивалентных года-месяца считаются разными, если у них разные эталонные дни. По этой причине следует избегать прямого использования конструктора и предпочитать метод from().
Синтаксис
Temporal.PlainYearMonth.compare(yearMonth1, yearMonth2)
Параметры
-
yearMonth1 - Строка, объект или экземпляр
Temporal.PlainYearMonth, представляющий первый сравниваемый год-месяц. Он преобразуется в объектTemporal.PlainYearMonthс использованием того же алгоритма, что иTemporal.PlainYearMonth.from(). -
yearMonth2 - Второй сравниваемый год-месяц, преобразованный в объект
Temporal.PlainYearMonthс использованием того же алгоритма, что иyearMonth1.
Возвращаемое значение
Возвращает -1, если yearMonth1 предшествует yearMonth2, 0, если они равны, и 1, если yearMonth1 следует за yearMonth2. Они сравниваются по своим базовым значениям даты (обычно первому дню месяца), игнорируя их календари.
Примеры
Использование Temporal.PlainYearMonth.compare()
const ym1 = Temporal.PlainYearMonth.from("2021-08");
const ym2 = Temporal.PlainYearMonth.from("2021-09");
console.log(Temporal.PlainYearMonth.compare(ym1, ym2)); // -1
const ym3 = Temporal.PlainYearMonth.from("2021-07");
console.log(Temporal.PlainYearMonth.compare(ym1, ym3)); // 1
Сравнение годов-месяцев в разных календарях
const ym1 = Temporal.PlainYearMonth.from({ year: 2021, month: 8 });
const ym2 = Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "islamic-umalqura",
});
const ym3 = Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "hebrew",
});
console.log(ym1.toString()); // "2021-08"
console.log(ym2.toString()); // "2582-12-17[u-ca=islamic-umalqura]"
console.log(ym3.toString()); // "-001739-04-06[u-ca=hebrew]"
console.log(Temporal.PlainYearMonth.compare(ym1, ym2)); // -1
console.log(Temporal.PlainYearMonth.compare(ym1, ym3)); // 1
Сортировка массива годов-месяцев
Назначение этой функции compare() — служить компаратором для передачи в Array.prototype.sort() и связанные с ним функции.
const months = [
Temporal.PlainYearMonth.from({ year: 2021, month: 8 }),
Temporal.PlainYearMonth.from({
year: 2021,
month: 8,
calendar: "islamic-umalqura",
}),
Temporal.PlainYearMonth.from({ year: 2021, month: 8, calendar: "hebrew" }),
];
months.sort(Temporal.PlainYearMonth.compare);
console.log(months.map((d) => d.toString()));
// [ "-001739-04-06[u-ca=hebrew]", "2021-08", "2582-12-17[u-ca=islamic-umalqura]" ]
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal.plainyearmonth.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 |
Нет |
Нет |
144 |
Нет |
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/PlainYearMonth/compare