Temporal.Duration.prototype.total()

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

total() 方法是 Temporal.Duration 例項的一個方法,它返回一個數字,表示給定單位的總持續時間。

語法

js
total(unit)
total(options)

引數

unit

一個字串,表示 unit 選項。這是一個方便的過載,因此 total(unit) 等同於 total({ unit }),其中 unit 是一個字串。

options

一個包含以下部分或全部屬性的物件(按檢索和驗證的順序):

relativeTo 可選

一個帶時區或不帶時區的日期(時間),它提供時間與日曆資訊,用於解析 日曆時長(有關此選項的通用解釋,請參閱連結)。如果 thisother 是日曆時長,或者 unit 是日曆單位,則此選項是必需的。

unit

任何時間單位:"years""months""weeks""days""hours""minutes""seconds""milliseconds""microseconds""nanoseconds",或它們的單數形式。

返回值

一個浮點數,表示給定單位的總持續時間。由於浮點數精度限制,可能不精確。

異常

RangeError

在以下情況之一中丟擲

  • 未提供 unit,或 unit 不是有效單位。
  • thisother 是日曆時長,或者 unit 是日曆單位,並且未提供 relativeTo

描述

如果提供了 relativeTo,則結果的計算方法是將時長新增到起點,找出結果與起點之間的差值(以納秒為單位),然後透過除以每單位的相應納秒數將差值轉換為所請求的單位。提供帶時區的日期時間可以考慮夏令時和其他時區變化;否則,假定為 24 小時一天。

如果未提供 relativeTo,則結果的計算方法是將時長轉換為納秒,然後除以每單位的相應納秒數。

示例

使用 total()

js
const d = Temporal.Duration.from({ hours: 1, minutes: 30 });

console.log(d.total("minutes")); // 90
console.log(d.total("hours")); // 1.5

日曆時長的總和

js
const d = Temporal.Duration.from({ months: 1 });

console.log(
  d.total({ unit: "days", relativeTo: Temporal.PlainDate.from("2021-01-01") }),
); // 31

規範

規範
Temporal
# sec-temporal.duration.prototype.total

瀏覽器相容性

另見