Temporal.PlainDate.compare()
Temporal.PlainDate.compare()
静态方法返回一个数字(-1、0 或 1),表示第一个日期是早于、等于还是晚于第二个日期。相当于比较底层 ISO 8601 日期的年、月和日字段。
语法
js
Temporal.PlainDate.compare(date1, date2)
参数
date1
-
一个字符串、一个对象或一个
Temporal.PlainDate
实例,表示要比较的第一个日期。它使用与Temporal.PlainDate.from()
相同的算法转换为Temporal.PlainDate
对象。 date2
-
要比较的第二个日期,使用与
date1
相同的算法转换为Temporal.PlainDate
对象。
返回值
如果 date1
早于 date2
,则返回 -1
;如果它们相同,则返回 0
;如果 date1
晚于 date2
,则返回 1
。它们通过底层的日期值进行比较,忽略它们的日历。
示例
使用 Temporal.PlainDate.compare()
js
const date1 = Temporal.PlainDate.from("2021-08-01");
const date2 = Temporal.PlainDate.from("2021-08-02");
console.log(Temporal.PlainDate.compare(date1, date2)); // -1
const date3 = Temporal.PlainDate.from("2021-07-31");
console.log(Temporal.PlainDate.compare(date1, date3)); // 1
比较不同日历中的日期
js
const date1 = Temporal.PlainDate.from({ year: 2021, month: 8, day: 1 });
const date2 = Temporal.PlainDate.from({
year: 2021,
month: 8,
day: 1,
calendar: "islamic-umalqura",
});
const date3 = Temporal.PlainDate.from({
year: 2021,
month: 8,
day: 1,
calendar: "hebrew",
});
console.log(date1.toString()); // "2021-08-01"
console.log(date2.toString()); // "2582-12-17[u-ca=islamic-umalqura]"
console.log(date3.toString()); // "-001739-04-06[u-ca=hebrew]"
console.log(Temporal.PlainDate.compare(date1, date2)); // -1
console.log(Temporal.PlainDate.compare(date1, date3)); // 1
对日期数组进行排序
此 compare()
函数的目的是作为比较器,传递给 Array.prototype.sort()
和相关函数。
js
const dates = [
Temporal.PlainDate.from({ year: 2021, month: 8, day: 1 }),
Temporal.PlainDate.from({
year: 2021,
month: 8,
day: 1,
calendar: "islamic-umalqura",
}),
Temporal.PlainDate.from({ year: 2021, month: 8, day: 1, calendar: "hebrew" }),
];
dates.sort(Temporal.PlainDate.compare);
console.log(dates.map((d) => d.toString()));
// [ "-001739-04-06[u-ca=hebrew]", "2021-08-01", "2582-12-17[u-ca=islamic-umalqura]" ]
规范
规范 |
---|
Temporal # sec-temporal.plaindate.compare |
浏览器兼容性
加载中…