Temporal.Instant.prototype.add()
add() 方法是 Temporal.Instant 例項的一個方法,它返回一個新的 Temporal.Instant 物件,該物件表示當前時間點向前移動了指定的時長(其格式可被 Temporal.Duration.from() 轉換)。
語法
js
add(duration)
引數
duration-
一個字串、一個物件或一個
Temporal.Duration例項,表示要新增到當前時間點的時長。它會使用與Temporal.Duration.from()相同的演算法將其轉換為Temporal.Duration物件。
返回值
一個新的 Temporal.Instant 物件,表示將 duration 新增到當前時間點。如果 duration 為正,則返回的時間點晚於當前時間點;如果 duration 為負,則返回的時間點早於當前時間點。
異常
RangeError-
在以下情況之一中丟擲
duration是一個 日曆時長(即years、months或weeks存在非零值),或者days存在非零值,因為在沒有日曆和時間參考的情況下,日曆時長是不明確的。- 結果不在可表示範圍內,該範圍是距 Unix 紀元 ±108 天,或約 ±273,972.6 年。
描述
本質上,add() 方法首先獲取 duration 所代表的納秒數,將其加到當前時間點的 epochNanoseconds 上,然後從結果建立一個新的 Temporal.Instant 物件。因此,該時長必須明確地代表一個固定的時間量。
如果您想新增一個日曆時長,則必須在日曆和時區的上下文中執行此加法運算,以考慮月份、年份和日期的可變長度(由於夏令時)。在這種情況下,請將時間點轉換為 Temporal.ZonedDateTime 物件,新增時長,然後將結果轉換回時間點。
示例
新增 Temporal.Duration
js
const instant = Temporal.Instant.fromEpochMilliseconds(0);
const duration = Temporal.Duration.from("PT1S");
const newInstant = instant.add(duration);
console.log(newInstant.epochMilliseconds); // 1000
新增物件或字串
js
const instant = Temporal.Instant.fromEpochMilliseconds(0);
const newInstant = instant.add({ seconds: 1 });
console.log(newInstant.epochMilliseconds); // 1000
const newInstant2 = instant.add("PT1S");
console.log(newInstant2.epochMilliseconds); // 1000
新增日曆時長
js
const instant = Temporal.Instant.fromEpochMilliseconds(1730610000000);
const duration = Temporal.Duration.from({ days: 1 });
// This instant is 2024-11-03T01:00:00-04:00[America/New_York],
// which is a DST transition day in the US.
const instant2 = instant
.toZonedDateTimeISO("America/New_York")
.add(duration)
.toInstant();
console.log(instant2.epochMilliseconds); // 1730700000000
// The same instant is not a DST transition day in Paris.
const instant3 = instant
.toZonedDateTimeISO("Europe/Paris")
.add(duration)
.toInstant();
console.log(instant3.epochMilliseconds); // 1730696400000
規範
| 規範 |
|---|
| Temporal # sec-temporal.instant.prototype.add |
瀏覽器相容性
載入中…