Spec-Zone.ru › JavaScript

Temporal.PlainDateTime

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

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

Объект Temporal.PlainDateTime представляет дату (календарную дату) и время (настенные часы) без часового пояса. По сути, он представлен в виде сочетания даты (с соответствующей календарной системой) и времени.

Описание

PlainDateTime — это, по сути, сочетание Temporal.PlainDate и Temporal.PlainTime. Поскольку информация о дате и времени взаимодействует незначительно, общая информация о свойствах даты приведена в объекте PlainDate, а общая информация о свойствах времени — в объекте PlainTime.

Если дата и время обозначают конкретный момент, который должен оставаться неизменным в разных часовых поясах, используйте вместо этого объект Temporal.ZonedDateTime. Используйте PlainDateTime, когда нужно представить событие, происходящее в определённое время по настенным часам, которое может соответствовать разным моментам времени в разных часовых поясах.

Формат RFC 9557

Объекты PlainDateTime можно сериализовать и разбирать с помощью формата RFC 9557, расширения формата ISO 8601 / RFC 3339. Строка имеет следующий вид (пробелы добавлены только для удобства чтения и не должны присутствовать в самой строке):

YYYY-MM-DD T HH:mm:ss.sssssssss [u-ca=calendar_id]
YYYY
Либо четырёхзначное число, либо шестизначное число со знаком + или -.
MM
Двухзначное число от 01 до 12.
DD
Двухзначное число от 01 до 31. Компоненты YYYY, MM и DD можно разделять символом - или не разделять.
T Необязательно
Разделитель даты и времени: T, t или пробел. Присутствует тогда и только тогда, когда присутствует HH.
HH Необязательно
Двухзначное число от 00 до 23. По умолчанию — 00.
mm Необязательно
Двухзначное число от 00 до 59. По умолчанию — 00.
ss.sssssssss Необязательно
Двухзначное число от 00 до 59. За ним может следовать . или , и от одной до девяти цифр. По умолчанию — 00. Компоненты HH, mm и ss можно разделять символом : или не разделять. Можно опустить только ss или оба компонента — ss и mm, поэтому время может иметь одну из трёх форм: HH, HH:mm или HH:mm:ss.sssssssss.
[u-ca=calendar_id] Необязательно
Замените calendar_id на используемый календарь. Список наиболее распространённых поддерживаемых типов календарей см. в разделе Intl.supportedValuesOf(). По умолчанию — [u-ca=iso8601]. Можно добавить критический флаг, поставив перед ключом !, например: [!u-ca=iso8601]. Этот флаг обычно сообщает другим системам, что его нельзя игнорировать, если они его не поддерживают. Анализатор Temporal выдаст ошибку, если аннотации содержат две или более аннотаций календаря и одна из них является критической. Обратите внимание, что YYYY-MM-DD всегда интерпретируется как календарная дата ISO 8601, а затем преобразуется в указанный календарь.

В качестве входных данных можно дополнительно указать смещение и идентификатор часового пояса в том же формате, что и в ZonedDateTime, но они будут проигнорированы. Обратите внимание, что смещение не должно быть Z. Другие аннотации в формате [key=value] также игнорируются и не должны иметь критический флаг.

При сериализации можно настроить количество цифр дробной части секунды, отображение идентификатора календаря и добавление к нему критического флага.

Конструктор

Temporal.PlainDateTime() Экспериментальная
Создаёт новый объект Temporal.PlainDateTime, напрямую задавая базовые данные.

Статические методы

Temporal.PlainDateTime.compare()
Возвращает число (-1, 0 или 1), указывающее, предшествует ли первая дата и время вторым, совпадает с ними или следует за ними. Эквивалентно сначала сравнению дат, а затем — если даты совпадают — сравнению времени.
Temporal.PlainDateTime.from()
Создаёт новый объект Temporal.PlainDateTime из другого объекта Temporal.PlainDateTime, объекта со свойствами даты и времени или строки формата RFC 9557.

Свойства экземпляра

Эти свойства определены в Temporal.PlainDateTime.prototype и доступны всем экземплярам Temporal.PlainDateTime.

Temporal.PlainDateTime.prototype.calendarId
Возвращает строку, представляющую календарь, используемый для интерпретации внутренней даты ISO 8601.
Temporal.PlainDateTime.prototype.constructor
Функция-конструктор, создавшая объект экземпляра. Для экземпляров Temporal.PlainDateTime начальным значением является конструктор Temporal.PlainDateTime().
Temporal.PlainDateTime.prototype.day
Возвращает положительное целое число, представляющее порядковый номер дня месяца, начиная с 1, для этой даты; это тот же номер дня, который отображается в календаре. Зависит от календаря. Обычно отсчёт начинается с 1 и ведётся непрерывно, но так бывает не всегда.
Temporal.PlainDateTime.prototype.dayOfWeek
Возвращает положительное целое число, представляющее порядковый номер дня недели, начиная с 1, для этой даты. Дни недели нумеруются последовательно от 1 до daysInWeek, причём каждому числу соответствует своё название. Зависит от календаря. Обычно числу 1 соответствует понедельник в календаре, даже если в локалях, использующих этот календарь, первым днём недели считается другой день (см. Intl.Locale.prototype.getWeekInfo()).
Temporal.PlainDateTime.prototype.dayOfYear
Возвращает положительное целое число, представляющее порядковый номер дня в году, начиная с 1, для этой даты. Первый день этого года — 1, а последний — daysInYear. Зависит от календаря.
Temporal.PlainDateTime.prototype.daysInMonth
Возвращает положительное целое число, представляющее количество дней в месяце этой даты. Зависит от календаря.
Temporal.PlainDateTime.prototype.daysInWeek
Возвращает положительное целое число, представляющее количество дней в неделе этой даты. Зависит от календаря. В календаре ISO 8601 это всегда 7, но в других календарных системах значение может меняться от недели к неделе.
Temporal.PlainDateTime.prototype.daysInYear
Возвращает положительное целое число, представляющее количество дней в году этой даты. Зависит от календаря. В календаре ISO 8601 это 365 или 366 в високосном году.
Temporal.PlainDateTime.prototype.era
Возвращает строчную строку, зависящую от календаря и представляющую эру этой даты, или undefined, если календарь не использует эры (например, ISO 8601). era и eraYear вместе однозначно определяют год в календаре так же, как это делает year. Зависит от календаря. В григорианском календаре это либо "ce", либо "bce".
Temporal.PlainDateTime.prototype.eraYear
Возвращает неотрицательное целое число, представляющее год этой даты в пределах эры, или undefined, если календарь не использует эры (например, ISO 8601). Отсчёт лет обычно начинается с 1 (чаще) или с 0; годы в эре могут убывать с течением времени (например, в григорианской эре до нашей эры). era и eraYear вместе однозначно определяют год в календаре так же, как это делает year. Зависит от календаря.
Temporal.PlainDateTime.prototype.hour
Возвращает целое число от 0 до 23, представляющее компонент часов этого времени.
Temporal.PlainDateTime.prototype.inLeapYear
Возвращает логическое значение, указывающее, приходится ли эта дата на високосный год. В високосном году больше дней, чем в обычном (из-за дополнительного дня или месяца). Зависит от календаря.
Temporal.PlainDateTime.prototype.microsecond
Возвращает целое число от 0 до 999, представляющее компонент микросекунд (10-6 секунды) этого времени.
Temporal.PlainDateTime.prototype.millisecond
Возвращает целое число от 0 до 999, представляющее компонент миллисекунд (10-3 секунды) этого времени.
Temporal.PlainDateTime.prototype.minute
Возвращает целое число от 0 до 59, представляющее компонент минут этого времени.
Temporal.PlainDateTime.prototype.month
Возвращает положительное целое число, представляющее порядковый номер месяца в году, начиная с 1, для этой даты. Первый месяц этого года — 1, а последний — monthsInYear. Зависит от календаря. Обратите внимание: в отличие от Date.prototype.getMonth(), отсчёт начинается с 1. Если в календаре есть високосные месяцы, месяц с тем же monthCode может иметь разные значения индекса month в разные годы.
Temporal.PlainDateTime.prototype.monthCode
Возвращает строку, зависящую от календаря и представляющую месяц этой даты. Зависит от календаря. Обычно это M и двузначный номер месяца. Для високосных месяцев к коду предыдущего месяца добавляется L. Если високосный месяц является первым месяцем года, используется код M00L.
Temporal.PlainDateTime.prototype.monthsInYear
Возвращает положительное целое число, представляющее количество месяцев в году этой даты. Зависит от календаря. В календаре ISO 8601 это всегда 12, но в других календарных системах значение может отличаться.
Temporal.PlainDateTime.prototype.nanosecond
Возвращает целое число от 0 до 999, представляющее компонент наносекунд (10-9 секунды) этого времени.
Temporal.PlainDateTime.prototype.second
Возвращает целое число от 0 до 59, представляющее компонент секунд этого времени.
Temporal.PlainDateTime.prototype.weekOfYear
Возвращает положительное целое число, представляющее порядковый номер недели, начиная с 1, в yearOfWeek этой даты, или undefined, если в календаре нет чётко определённой системы недель. Первая неделя года — 1. Зависит от календаря. Обратите внимание: в ISO 8601 первые и последние несколько дней года могут относиться к последней неделе предыдущего года или к первой неделе следующего года.
Temporal.PlainDateTime.prototype.year
Возвращает целое число, представляющее количество лет этой даты относительно начала календарного года эпохи. Зависит от календаря. Обычно год 1 — это либо первый год последней эры, либо год ISO 8601 0001. Если эпоха приходится на середину года, значение этого года будет одинаковым до и после даты начала эры.
Temporal.PlainDateTime.prototype.yearOfWeek
Возвращает целое число, представляющее год, который следует использовать вместе с weekOfYear этой даты, или undefined, если в календаре нет чётко определённой системы недель. Зависит от календаря. Обычно это год даты, но в ISO 8601 первые и последние несколько дней года могут относиться к последней неделе предыдущего года или к первой неделе следующего года, из-за чего значение yearOfWeek отличается на 1.
Temporal.PlainDateTime.prototype[Symbol.toStringTag]
Начальное значение свойства [Symbol.toStringTag] — строка "Temporal.PlainDateTime". Это свойство используется в Object.prototype.toString().

Методы экземпляра

Temporal.PlainDateTime.prototype.add()
Возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время, сдвинутые вперёд на заданную длительность (в форме, преобразуемой с помощью Temporal.Duration.from()).
Temporal.PlainDateTime.prototype.equals()
Возвращает true, если значение этой даты и времени эквивалентно значению другой даты и времени (в форме, преобразуемой с помощью Temporal.PlainDateTime.from()), и false в противном случае. Сравниваются значения даты и времени, а также календари, поэтому даты и время из разных календарей могут считаться равными при вызове Temporal.PlainDateTime.compare(), но не при вызове equals().
Temporal.PlainDateTime.prototype.round()
Возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время, округлённые до заданной единицы.
Temporal.PlainDateTime.prototype.since()
Возвращает новый объект Temporal.Duration, представляющий длительность от другой даты и времени (в форме, преобразуемой с помощью Temporal.PlainDateTime.from()) до этой даты и времени. Длительность положительна, если другая дата и время предшествуют этой дате и времени, и отрицательна, если следуют за ними.
Temporal.PlainDateTime.prototype.subtract()
Возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время, сдвинутые назад на заданную длительность (в форме, преобразуемой с помощью Temporal.Duration.from()).
Temporal.PlainDateTime.prototype.toJSON()
Возвращает строку, представляющую эту дату и время в том же формате RFC 9557, что и при вызове toString(). Предназначен для неявного вызова методом JSON.stringify().
Temporal.PlainDateTime.prototype.toLocaleString()
Возвращает строку с локализованным представлением этой даты и времени.
Temporal.PlainDateTime.prototype.toPlainDate()
Возвращает новый объект Temporal.PlainDate, представляющий часть даты (год, месяц, день) этой даты и времени в той же календарной системе.
Temporal.PlainDateTime.prototype.toPlainTime()
Возвращает новый объект Temporal.PlainTime, представляющий часть времени (компоненты часов, минут, секунд и долей секунды) этой даты и времени.
Temporal.PlainDateTime.prototype.toString()
Возвращает строку, представляющую эту дату и время в формате RFC 9557.
Temporal.PlainDateTime.prototype.toZonedDateTime()
Возвращает новый экземпляр Temporal.ZonedDateTime, представляющий ту же дату и время, что и эта дата и время без часового пояса, но в указанном часовом поясе.
Temporal.PlainDateTime.prototype.until()
Возвращает новый объект Temporal.Duration, представляющий длительность от этой даты и времени до другой даты и времени (в форме, преобразуемой с помощью Temporal.PlainDateTime.from()). Длительность положительна, если другая дата и время следуют за этой датой и временем, и отрицательна, если предшествуют им.
Temporal.PlainDateTime.prototype.valueOf()
Вызывает исключение TypeError, предотвращая неявное преобразование экземпляров Temporal.PlainDateTime в примитивы при использовании в арифметических операциях или операциях сравнения.
Temporal.PlainDateTime.prototype.with()
Возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время с заменой некоторых полей новыми значениями.
Temporal.PlainDateTime.prototype.withCalendar()
Возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время, интерпретируемые в новой календарной системе.
Temporal.PlainDateTime.prototype.withPlainTime()
Возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время с полностью заменённой частью времени на новое значение (в форме, преобразуемой с помощью Temporal.PlainTime.from()).

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

Спецификация
Temporal
# sec-temporal-plaindatetime-objects

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

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS Bun Deno Node.js
PlainDateTime
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
PlainDateTime
Нет
Нет
139
Нет
Нет
Нет
139
Нет
Нет
Нет
Нет
Нет
?
2.7
26.0.0
add
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
calendarId
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
compare
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
day
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
dayOfWeek
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
dayOfYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
daysInMonth
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
daysInWeek
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
daysInYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
equals
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
era
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
eraYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
from
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
hour
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
inLeapYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
microsecond
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
millisecond
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
minute
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
month
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
monthCode
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
monthsInYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
nanosecond
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
round
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
second
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
since
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
subtract
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
toJSON
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
toLocaleString
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
toPlainDate
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
toPlainTime
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
toString
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
toZonedDateTime
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
until
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
valueOf
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
weekOfYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
with
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
withCalendar
144
144
139Календари islamic, islamic-rgsa и islamic-umalqura недоступны. См. ошибку 1950425 и ошибку 1954138.
128
предварительная версия
144
139Календари islamic, islamic-rgsa и islamic-umalqura недоступны. См. ошибку 1950425 и ошибку 1954138.
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
withPlainTime
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
year
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0
yearOfWeek
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

См. также

  • Temporal
  • Temporal.Duration
  • Temporal.PlainDate
  • Temporal.PlainTime
  • Temporal.ZonedDateTime

© 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/PlainDateTime

Spec-Zone.ru

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