Spec-Zone.ru › JavaScript

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

См. также

  • Temporal.PlainYearMonth
  • Temporal.PlainYearMonth.prototype.equals()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API