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

浏览器兼容性

另见