Temporal.PlainYearMonth

可用性有限

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

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

Temporal.PlainYearMonth 物件表示日曆日期的年份和月份,不包含日期或時區;例如,日曆上整個月發生的事件。它在根本上表示為 ISO 8601 日曆日期,具有年、月和日欄位,以及關聯的日曆系統。該日期用於消除非 ISO 日曆系統中年月日的歧義。

描述

PlainYearMonth 本質上是 Temporal.PlainDate 物件的年月部分,不包含日期。

RFC 9557 格式

PlainYearMonth 物件可以使用 RFC 9557 格式進行序列化和解析,該格式是 ISO 8601 / RFC 3339 格式的擴充套件。字串具有以下形式(空格僅為可讀性而存在,不應出現在實際字串中):

YYYY-MM-DD [u-ca=calendar_id]
YYYY

一個四位數,或者一個帶 +- 號的六位數。

MM

一個從 0112 的兩位數。

DD 可選

一個兩位數,從 0131。對於非 ISO 日曆是必需的,否則是可選的。如果省略,字串看起來像 YYYY-MMYYYYMM。請注意,實際儲存的參考日期可能與您提供的不同,但所表示的年月是相同的。有關更多資訊,請參閱 Temporal.PlainYearMonth.from()YYYYMMDD 元件可以使用 - 或不使用任何分隔符。

[u-ca=calendar_id] 可選

calendar_id 替換為要使用的日曆。有關常用支援的日曆型別列表,請參閱 Intl.supportedValuesOf()。預設為 [u-ca=iso8601]。可以透過在鍵前加 ! 來新增關鍵標誌:例如 [!u-ca=iso8601]。這個標誌通常告訴其他系統,如果它們不支援它,就不能忽略它。如果註解包含兩個或多個日曆註解且其中一個是關鍵的,Temporal 解析器將丟擲錯誤。請注意,YYYY-MM-DD 始終被解釋為 ISO 8601 日曆日期,然後轉換為指定的日曆。

作為輸入,你可以選擇性地包含時間、偏移量和時區識別符號,格式與 PlainDateTime 相同,但它們將被忽略。[key=value] 格式的其他註解也將被忽略,且它們不得帶有關鍵標誌。

序列化時,你可以配置是否顯示日曆 ID,以及是否為其新增關鍵標誌。

建構函式

Temporal.PlainYearMonth() 實驗性

透過直接提供底層資料來建立新的 Temporal.PlainYearMonth 物件。

靜態方法

Temporal.PlainYearMonth.compare() 實驗性

返回一個數字(-1、0 或 1),指示第一個年月是早於、等於還是晚於第二個年月。等同於比較其底層 ISO 8601 日期。如果兩個不同日曆的年月在相同的 ISO 日期開始,則可能被視為相等。

Temporal.PlainYearMonth.from() 實驗性

從另一個 Temporal.PlainYearMonth 物件、一個具有年和月屬性的物件或一個 RFC 9557 字串建立新的 Temporal.PlainYearMonth 物件。

例項屬性

這些屬性在 Temporal.PlainYearMonth.prototype 上定義,並由所有 Temporal.PlainYearMonth 例項共享。

Temporal.PlainYearMonth.prototype.calendarId 實驗性

返回一個字串,表示用於解釋內部 ISO 8601 日期的日曆

Temporal.PlainYearMonth.prototype.constructor

建立例項物件的建構函式。對於 Temporal.PlainYearMonth 例項,初始值是 Temporal.PlainYearMonth() 建構函式。

Temporal.PlainYearMonth.prototype.daysInMonth 實驗性

返回一個正整數,表示此日期所在月份的天數。依賴於日曆

Temporal.PlainYearMonth.prototype.daysInYear 實驗性

返回一個正整數,表示此日期所在年份的天數。依賴於日曆。對於 ISO 8601 日曆,這是 365,閏年是 366。

Temporal.PlainYearMonth.prototype.era 實驗性

返回一個日曆特定的、小寫字串,表示此年月的紀元,如果日曆不使用紀元(例如 ISO 8601),則返回 undefinederaeraYear 一起唯一標識日曆中的一年,就像 year 一樣。日曆依賴。對於公曆,它是 "gregory""gregory-inverse"

Temporal.PlainYearMonth.prototype.eraYear 實驗性

返回一個非負整數,表示此年月在紀元中的年份,如果日曆不使用紀元(例如 ISO 8601),則返回 undefined。年份索引通常從 1(更常見)或 0 開始,紀元中的年份可以隨時間遞減(例如,公曆 BCE)。eraeraYear 一起唯一標識日曆中的一年,就像 year 一樣。日曆依賴。

Temporal.PlainYearMonth.prototype.inLeapYear 實驗性

返回一個布林值,指示此年月是否在閏年。閏年是指比普通年多幾天(由於閏日或閏月)的年份。日曆依賴。

Temporal.PlainYearMonth.prototype.month 實驗性

返回一個正整數,表示此年月在一年中的基於 1 的月份索引。這一年的第一個月是 1,最後一個月是 monthsInYear日曆依賴。請注意,與 Date.prototype.getMonth() 不同,該索引是基於 1 的。如果日曆有閏月,則具有相同 monthCode 的月份可能在不同年份具有不同的 month 索引。

Temporal.PlainYearMonth.prototype.monthCode 實驗性

返回一個日曆特定的字串,表示此年月的月份。日曆依賴。通常是 M 加上兩位數的月份編號。對於閏月,它是前一個月份的程式碼後跟 L。如果閏月是該年的第一個月,則程式碼是 M00L

Temporal.PlainYearMonth.prototype.monthsInYear 實驗性

返回一個正整數,表示此日期所在年份的月份數。依賴於日曆。對於 ISO 8601 日曆,這總是 12,但在其他日曆系統中可能會有所不同。

Temporal.PlainYearMonth.prototype.year 實驗性

返回一個整數,表示此年月相對於日曆特定紀元年開始的年份數。日曆依賴。通常,第 1 年是最新紀元的第一年或 ISO 8601 年 0001。如果紀元在年中,則該年在紀元開始日期前後將具有相同的值。

Temporal.PlainYearMonth.prototype[Symbol.toStringTag]

Symbol.toStringTag 屬性的初始值是字串 "Temporal.PlainYearMonth"。此屬性用於 Object.prototype.toString()

例項方法

Temporal.PlainYearMonth.prototype.add() 實驗性

返回一個新的 Temporal.PlainYearMonth 物件,表示此年月按給定持續時間(以可由 Temporal.Duration.from() 轉換的形式)向前移動。

Temporal.PlainYearMonth.prototype.equals() 實驗性

如果此年月的值等同於另一個年月(以可由 Temporal.PlainYearMonth.from() 轉換的形式),則返回 true,否則返回 false。它們透過其底層 ISO 日期值和日曆進行比較,因此兩個不同日曆的年月可能被 Temporal.PlainYearMonth.compare() 視為相等,但不能被 equals() 視為相等。

Temporal.PlainYearMonth.prototype.since() 實驗性

返回一個新的 Temporal.Duration 物件,表示從另一個年月(以可由 Temporal.PlainYearMonth.from() 轉換的形式)到此年月的持續時間。如果另一個月份在此月份之前,則持續時間為正,如果之後,則為負。

Temporal.PlainYearMonth.prototype.subtract() 實驗性

返回一個新的 Temporal.PlainYearMonth 物件,表示此年月按給定持續時間(以可由 Temporal.Duration.from() 轉換的形式)向後移動。

Temporal.PlainYearMonth.prototype.toJSON() 實驗性

返回一個字串,以與呼叫 toString() 相同的 RFC 9557 格式表示此年月。旨在由 JSON.stringify() 隱式呼叫。

Temporal.PlainYearMonth.prototype.toLocaleString() 實驗性

返回此年月的語言敏感表示的字串。

Temporal.PlainYearMonth.prototype.toPlainDate() 實驗性

返回一個新的 Temporal.PlainDate 物件,表示此年月和在相同日曆系統中提供的日期。

Temporal.PlainYearMonth.prototype.toString() 實驗性

返回一個字串,以 RFC 9557 格式表示此年月。

Temporal.PlainYearMonth.prototype.until() 實驗性

返回一個新的 Temporal.Duration 物件,表示從此年月到另一個年月(以可由 Temporal.PlainYearMonth.from() 轉換的形式)的持續時間。如果另一個月份在此月份之後,則持續時間為正,如果之前,則為負。

Temporal.PlainYearMonth.prototype.valueOf() 實驗性

丟擲 TypeError,這會阻止 Temporal.PlainYearMonth 例項在算術或比較操作中 隱式轉換為原始值

Temporal.PlainYearMonth.prototype.with() 實驗性

返回一個新的 Temporal.PlainYearMonth 物件,表示此年月的一些欄位被新值替換。

規範

規範
Temporal
# sec-temporal-plainyearmonth-objects

瀏覽器相容性

另見