Temporal.PlainMonthDay.prototype.with()
with() 方法是 Temporal.PlainMonthDay 例項的一個方法,它返回一個新的 Temporal.PlainMonthDay 物件,該物件表示當前月份-日期,但某些欄位被新值替換。由於所有 Temporal 物件都被設計為不可變的,因此此方法本質上起到了設定月份-日期欄位的作用。
沒有直接的方法可以建立一個表示不同日曆中相同月份-日期的新的 Temporal.PlainMonthDay 物件。因此,要替換其 calendarId 屬性,您需要使用 toPlainDate() 方法將其轉換為 Temporal.PlainDate 物件,更改日曆,然後將其轉換回來。
語法
js
with(info)
with(info, options)
引數
info-
一個包含
Temporal.PlainMonthDay.from()識別的至少一個屬性(除calendar外)的物件:day、era和eraYear、month、monthCode、year。未指定的屬性將使用原始月份-日期的值。當且僅當您提供month且日曆不是iso8601時,您才需要提供年份。您只需要提供month或monthCode中的一個,以及era或eraYear或year中的一個,另一個將相應更新。 options可選-
包含以下屬性的物件
overflow可選-
一個字串,指定日期元件超出範圍時的行為。可能的值是
"constrain"(預設)-
日期元件被限制在有效範圍內。
"reject"-
如果日期元件超出範圍,則丟擲
RangeError。
返回值
一個新的 Temporal.PlainMonthDay 物件,其中 info 中指定且不為 undefined 的欄位將被相應的值替換,其餘欄位將從原始日期複製。
異常
TypeError-
在以下情況之一中丟擲
info不是一個物件。options不是物件或undefined。
RangeError-
在以下情況之一中丟擲
- 指定相同元件的提供的屬性不一致。
- 提供的非數字屬性無效;例如,如果
monthCode在此日曆中從未是有效的月份程式碼。 - 提供的數字屬性超出範圍,並且
options.overflow設定為"reject"。 - 如果提供了年份,日曆不是
iso8601,並且該年份不在 可表示範圍(從-271821到275760)或年份內。
示例
使用 with()
js
const md = Temporal.PlainMonthDay.from("07-01");
const newMd = md.with({ day: 2 });
console.log(newMd.toString()); // "07-02"
有關更多示例,請參閱可以使用 with() 設定的各個屬性的文件。
規範
| 規範 |
|---|
| Temporal # sec-temporal.plainmonthday.prototype.with |
瀏覽器相容性
載入中…