Temporal.PlainDateTime

可用性有限

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

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

Temporal.PlainDateTime 物件表示沒有時區的日期(日曆日期)和時間(掛鐘時間)。它從根本上表示為日期(以及相關的日曆系統)和時間的組合。

描述

PlainDateTime 本質上是 Temporal.PlainDateTemporal.PlainTime 的組合。由於日期和時間資訊之間沒有太多互動,因此所有關於日期屬性的一般資訊都記錄在 PlainDate 物件中,所有關於時間屬性的一般資訊都記錄在 PlainTime 物件中。

如果日期時間表示應在不同時區保持不變的特定瞬間,則應改用 Temporal.ZonedDateTime 物件。當需要表示在特定掛鐘時間發生的事件(該事件可能在不同時區是不同的瞬間)時,請使用 PlainDateTime

RFC 9557 格式

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

YYYY-MM-DD T HH:mm:ss.sssssssss [u-ca=calendar_id]
YYYY

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

MM

一個從 0112 的兩位數。

DD

一個從 0131 的兩位數。YYYYMMDD 部分可以用 - 分隔或不用。

T 可選

日期時間分隔符,可以是 Tt 或空格。當且僅當 HH 存在時才出現。

HH 可選

一個兩位數,從 0023。預設為 00

mm 可選

一個從 0059 的兩位數。預設為 00

ss.sssssssss 可選

一個從 0059 的兩位數。可以選擇後跟 ., 和一到九位數字。預設為 00HHmmss 部分可以用 : 分隔或不用。你可以只省略 ss 或同時省略 ssmm,因此時間可以有三種形式:HHHH:mmHH:mm:ss.sssssssss

[u-ca=calendar_id] 可選

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

作為輸入,你可以選擇包含偏移量和時區識別符號,格式與 ZonedDateTime 相同,但它們將被忽略。請注意,偏移量不能Z[key=value] 格式的其他註釋也會被忽略,並且它們不能具有關鍵標誌。

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

建構函式

Temporal.PlainDateTime() 實驗性

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

靜態方法

Temporal.PlainDateTime.compare() 實驗性

返回一個數字(-1、0 或 1),指示第一個日期時間是早於、等於還是晚於第二個日期時間。相當於先比較它們的日期,如果日期相同,則比較它們的時間。

Temporal.PlainDateTime.from() 實驗性

從另一個 Temporal.PlainDateTime 物件、具有日期和時間屬性的物件或 RFC 9557 字串建立新的 Temporal.PlainDateTime 物件。

例項屬性

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

Temporal.PlainDateTime.prototype.calendarId 實驗性

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

Temporal.PlainDateTime.prototype.constructor

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

Temporal.PlainDateTime.prototype.day 實驗性

返回一個正整數,表示此日期在本月中的基於 1 的日期索引,這與你在日曆上看到的日期數字相同。依賴於日曆。通常從 1 開始並且是連續的,但並非總是如此。

Temporal.PlainDateTime.prototype.dayOfWeek 實驗性

返回一個正整數,表示此日期在星期中的 1-based 天索引。星期中的天數從 1daysInWeek 順序編號,每個數字都對映到其名稱。日曆相關。在日曆中,1 通常表示星期一,即使使用該日曆的語言環境可能將不同的日子視為一週的第一天(請參閱 Intl.Locale.prototype.getWeekInfo())。

Temporal.PlainDateTime.prototype.dayOfYear 實驗性

返回一個正整數,表示此日期在一年中的 1-based 天索引。這一年的第一天是 1,最後一天是 daysInYear日曆相關。

Temporal.PlainDateTime.prototype.daysInMonth 實驗性

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

Temporal.PlainDateTime.prototype.daysInWeek 實驗性

返回一個正整數,表示此日期所在星期中的天數。依賴於日曆。對於 ISO 8601 日曆,這總是 7,但在其他日曆系統中,每週可能不同。

Temporal.PlainDateTime.prototype.daysInYear 實驗性

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

Temporal.PlainDateTime.prototype.era 實驗性

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

Temporal.PlainDateTime.prototype.eraYear 實驗性

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

Temporal.PlainDateTime.prototype.hour 實驗性

返回一個從 0 到 23 的整數,表示此時間的小時部分。

Temporal.PlainDateTime.prototype.inLeapYear 實驗性

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

Temporal.PlainDateTime.prototype.microsecond 實驗性

返回一個從 0 到 999 的整數,表示此時間的微秒(10-6 秒)部分。

Temporal.PlainDateTime.prototype.millisecond 實驗性

返回一個從 0 到 999 的整數,表示此時間的毫秒(10-3 秒)部分。

Temporal.PlainDateTime.prototype.minute 實驗性

返回一個從 0 到 59 的整數,表示此時間的分鐘部分。

Temporal.PlainDateTime.prototype.month 實驗性

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

Temporal.PlainDateTime.prototype.monthCode 實驗性

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

Temporal.PlainDateTime.prototype.monthsInYear 實驗性

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

Temporal.PlainDateTime.prototype.nanosecond 實驗性

返回一個從 0 到 999 的整數,表示此時間的納秒(10-9 秒)部分。

Temporal.PlainDateTime.prototype.second 實驗性

返回一個從 0 到 59 的整數,表示此時間的秒部分。

Temporal.PlainDateTime.prototype.weekOfYear 實驗性

返回一個正整數,表示此日期在 yearOfWeek 中的 1-based 星期索引,如果日曆沒有明確定義的星期系統,則返回 undefined。一年中的第一週是 1日曆相關。請注意,對於 ISO 8601,一年中的最初幾天和最後幾天可能被歸屬於上一年或下一年的最後一週或第一週。

Temporal.PlainDateTime.prototype.year 實驗性

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

Temporal.PlainDateTime.prototype.yearOfWeek 實驗性

返回一個整數,表示與此日期的 weekOfYear 配對的年份,如果日曆沒有明確定義的星期系統,則返回 undefined日曆相關。這通常是日期的年份,但對於 ISO 8601,一年中的最初幾天和最後幾天可能歸屬於上一年或下一年的最後一週或第一週,導致 yearOfWeek 相差 1。

Temporal.PlainDateTime.prototype[Symbol.toStringTag]

[Symbol.toStringTag] 屬性的初始值是字串 "Temporal.PlainDateTime"。此屬性在 Object.prototype.toString() 中使用。

例項方法

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

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

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

如果此日期時間的值與另一個日期時間(以可由 Temporal.PlainDateTime.from() 轉換的形式)等效,則返回 true,否則返回 false。它們透過日期和時間值以及日曆進行比較,因此來自不同日曆的兩個日期時間可能透過 Temporal.PlainDateTime.compare() 被視為相等,但透過 equals() 則不相等。

Temporal.PlainDateTime.prototype.round() 實驗性

返回一個新的 Temporal.PlainDateTime 物件,表示此日期時間按給定單位四捨五入。

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

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

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

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

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

返回一個字串,表示此日期時間採用與呼叫 toString() 相同的 RFC 9557 格式。旨在由 JSON.stringify() 隱式呼叫。

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

返回一個帶有此日期時間語言敏感表示的字串。

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

返回一個新的 Temporal.PlainDate 物件,表示此日期時間在同一日曆系統中的日期部分(年、月、日)。

Temporal.PlainDateTime.prototype.toPlainTime() 實驗性

返回一個新的 Temporal.PlainTime 物件,表示此日期時間的時間部分(小時、分鐘、秒和亞秒元件)。

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

返回一個字串,表示此日期時間採用 RFC 9557 格式

Temporal.PlainDateTime.prototype.toZonedDateTime() 實驗性

返回一個新的 Temporal.ZonedDateTime 例項,表示與此普通日期時間相同的日期時間,但在指定的時區。

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

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

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

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

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

返回一個新的 Temporal.PlainDateTime 物件,表示此日期時間的一些欄位被新值替換。

Temporal.PlainDateTime.prototype.withCalendar() 實驗性

返回一個新的 Temporal.PlainDateTime 物件,表示此日期時間在新日曆系統中解釋。

Temporal.PlainDateTime.prototype.withPlainTime() 實驗性

返回一個新的 Temporal.PlainDateTime 物件,表示此日期時間的時間部分完全被新時間替換(以可由 Temporal.PlainTime.from() 轉換的形式)。

規範

規範
Temporal
# sec-temporal-plaindatetime-objects

瀏覽器相容性

另見