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