Spec-Zone.ru › JavaScript

Temporal.PlainDate.prototype.dayOfYear

Базовый уровень Ограниченная доступность

Эта функция не является базовой, поскольку она не работает в некоторых из наиболее широко используемых браузеров.

Свойство-аксессор dayOfYear экземпляров Temporal.PlainDate возвращает положительное целое число, представляющее 1-индексированный порядковый номер дня в году для этой даты. Первый день этого года — 1, а последний день — daysInYear. Оно зависит от календаря.

Аксессор установки (set accessor) dayOfYear является undefined. Вы не можете изменить это свойство напрямую. Чтобы создать новый объект Temporal.PlainDate с желаемым новым значением dayOfYear, используйте метод add() или subtract() с соответствующим числом days.

Примеры

Использование dayOfYear

const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfYear); // 182

const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfYear); // 140

const date3 = Temporal.PlainDate.from("2020-07-01");
console.log(date3.dayOfYear); // 183; 2020 is a leap year

Изменение dayOfYear

PlainDate не поддерживает прямое изменение dayOfYear. Чтобы изменить день года, вам нужно сначала определить разницу в днях до желаемого дня года, а затем использовать add или subtract для соответствующей корректировки даты. Например, чтобы перейти к 100-му дню этого года (будь то раньше или позже):

function getDayInSameYear(date, destDayOfYear) {
  return date.add({ days: destDayOfYear - date.dayOfYear });
}

console.log(
  getDayInSameYear(Temporal.PlainDate.from("2021-07-01"), 100).toString(),
); // 2021-04-10
console.log(
  getDayInSameYear(Temporal.PlainDate.from("2021-01-01"), 100).toString(),
); // 2021-04-10
console.log(
  getDayInSameYear(Temporal.PlainDate.from("2020-01-01"), 100).toString(),
); // 2020-04-09

По умолчанию with() ограничивает день диапазоном допустимых значений. Таким образом, вы всегда можете использовать { month: 1, day: 1 }, чтобы установить день на первый день года, даже если первый день не имеет номер 1. Аналогично, следующее установит день на последний день года, независимо от того, сколько дней содержится в последнем месяце или году:

const date = Temporal.PlainDate.from("2021-07-01");
const lastDay = date.with({ month: Number.MAX_VALUE, day: Number.MAX_VALUE }); // 2021-12-31

Спецификации

Спецификация
Temporal
# sec-get-temporal.plaindate.prototype.dayofyear

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
dayOfYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

См. также

  • Temporal.PlainDate
  • Temporal.PlainDate.prototype.with()
  • Temporal.PlainDate.prototype.add()
  • Temporal.PlainDate.prototype.subtract()
  • Temporal.PlainDate.prototype.year
  • Temporal.PlainDate.prototype.day
  • Temporal.PlainDate.prototype.dayOfWeek
  • Temporal.PlainDate.prototype.daysInYear

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/dayOfYear

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API