Temporal.PlainDate.prototype.day
day
访问器属性是 Temporal.PlainDate
实例的属性,用于返回一个表示此日期所在月份的 1 基日期索引的正整数。这与日历上显示的日期编号相同。它依赖于日历。
它通常从 1 开始并且是连续的,但并非总是如此。如果您想遍历月份中的所有日期,请先使用带有 { day: 1 }
的 with()
方法(这将设置为月份的开始,即使实际数字不是 1
),然后重复使用带有 { days: 1 }
的 add()
方法,直到月份发生变化。
注意: 通常,日期索引仅在从一个日历系统过渡到另一个日历系统时才会改变,例如从儒略历到格里高利历。实际上,所有当前内置的日历都是外推的,这意味着日历系统被无限地扩展到过去和未来。假定 day
是非连续的,可以防止未来引入非外推日历。
day
的设置访问器是 undefined
。您不能直接更改此属性。请使用 with()
方法创建一个新的 Temporal.PlainDate
对象,并带有您想要的新值。
示例
使用 day
js
const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.day); // 1
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.day); // 22; it is May 22 in the Chinese calendar
遍历月份中的所有日期
js
const month = Temporal.PlainDate.from("2021-07-14"); // An arbitrary date in the month
for (
let day = month.with({ day: 1 });
day.month === month.month;
day = day.add({ days: 1 })
) {
console.log(day.day);
}
更改日期
js
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.with({ day: 15 });
console.log(newDate.toString()); // 2021-07-15
您还可以使用 add()
或 subtract()
方法,从当前日期开始移动指定的日数。
js
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.add({ days: 14 });
console.log(newDate.toString()); // 2021-07-15
默认情况下,with()
会将日期约束在有效值的范围内。因此,您可以使用 { day: 1 }
将日期设置为月份的第一天,即使第一天不是数字 1
。同样,以下代码会将日期设置为月份的最后一天:
js
const date = Temporal.PlainDate.from("2021-07-01");
const lastDay = date.with({ day: Number.MAX_VALUE }); // 2021-07-31
注意: 避免使用 daysInMonth
来设置月份的最后一天。在罕见的月份跳过几天的imerick情况下,月份的最后一天并不总是与该月份的总天数相同。
规范
规范 |
---|
Temporal # sec-get-temporal.plaindate.prototype.day |
浏览器兼容性
加载中…
另见
Temporal.PlainDate
Temporal.PlainDate.prototype.with()
Temporal.PlainDate.prototype.add()
Temporal.PlainDate.prototype.subtract()
Temporal.PlainDate.prototype.year
Temporal.PlainDate.prototype.month
Temporal.PlainDate.prototype.daysInMonth
Temporal.PlainDate.prototype.dayOfWeek
Temporal.PlainDate.prototype.dayOfYear