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

瀏覽器相容性

另見