Temporal.ZonedDateTime.prototype.day
Temporal.ZonedDateTime
实例的 day
访问器属性返回一个正整数,表示该日期在月份中的基于 1 的日期索引,与你在日历上看到的日期数字相同。它取决于日历。
day
的设置器为 undefined
。你不能直接更改此属性。请使用 with()
方法创建一个具有所需新值的新的 Temporal.ZonedDateTime
对象。
有关一般信息和更多示例,请参见 Temporal.PlainDate.prototype.day
。
对于 PlainDate
,如果日历跳过天数,day
才会是非连续的。对于 ZonedDateTime
,如果时区将其偏移量更改 24 小时,day
也可以是非连续的;这种情况确实发生过。请参见下面的示例。
示例
使用 day
js
const dt = Temporal.ZonedDateTime.from("2021-07-01[America/New_York]"); // ISO 8601 calendar
console.log(dt.day); // 1
非连续的 day
为了更好地与亚洲的贸易伙伴对齐时间,萨摩亚国将其时区更改到国际日期变更线的另一侧,将其偏移量从 -10:00 更改为 +14:00(夏令时)。这导致当地时间 abrupt 改变 24 小时,因此完全跳过了 2011 年 12 月 30 日。2011-12-29T23:59:59-10:00[Pacific/Apia]
紧接着是 2011-12-31T00:00:00+14:00[Pacific/Apia]
。
js
const dt = Temporal.ZonedDateTime.from(
"2011-12-29T23:59:59-10:00[Pacific/Apia]",
);
console.log(dt.day); // 29
const nextDay = dt.add({ seconds: 1 });
console.log(nextDay.day); // 31
因此,在操作日期和时间时,应始终首选 add()
和 subtract()
,而不是直接更改 day
属性。
规范
规范 |
---|
Temporal # sec-get-temporal.zoneddatetime.prototype.day |
浏览器兼容性
加载中…
另见
Temporal.ZonedDateTime
Temporal.ZonedDateTime.prototype.with()
Temporal.ZonedDateTime.prototype.add()
Temporal.ZonedDateTime.prototype.subtract()
Temporal.ZonedDateTime.prototype.year
Temporal.ZonedDateTime.prototype.month
Temporal.ZonedDateTime.prototype.daysInMonth
Temporal.ZonedDateTime.prototype.dayOfWeek
Temporal.ZonedDateTime.prototype.dayOfYear
Temporal.PlainDate.prototype.day