Spec-Zone.ru › JavaScript

Temporal.Instant.prototype.since()

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

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

Метод since() экземпляров Temporal.Instant возвращает новый объект Temporal.Duration, представляющий собой продолжительность от другого момента времени (в форме, конвертируемой методом Temporal.Instant.from()) до этого момента времени. Продолжительность положительна, если другой момент времени предшествует этому, и отрицательна, если следует за ним.

Этот метод this - other. Чтобы other - this, используйте метод until().

Синтаксис

since(other)
since(other, options)

Параметры

other
Строка или экземпляр Temporal.Instant, представляющий момент времени, который нужно вычесть из этого момента времени. Он преобразуется в объект Temporal.Instant с использованием того же алгоритма, что и Temporal.Instant.from().
options Необязательный
Объект, содержащий параметры для Temporal.Duration.prototype.round(), включая largestUnit, roundingIncrement, roundingMode и smallestUnit. largestUnit и smallestUnit принимают только единицы измерения: "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds" или их единственные формы. Для largestUnit значение по умолчанию "auto" означает "seconds" или smallestUnit, в зависимости от того, какое значение больше. Для smallestUnit значение по умолчанию — "nanoseconds".

Возвращаемое значение

Новый объект Temporal.Duration, представляющий продолжительность *с* other до этого момента времени. Продолжительность положительна, если other предшествует этому моменту времени, и отрицательна, если следует за ним.

Исключения

RangeError
Выбрасывается, если какой-либо из параметров недопустим.

Примеры

Использование since()

const lastUpdated = Temporal.Instant.fromEpochMilliseconds(1735235418000);
const now = Temporal.Now.instant();
const duration = now.since(lastUpdated, { smallestUnit: "minute" });
console.log(`Last updated ${duration.toLocaleString("en-US")} ago`);

Балансировка результирующей продолжительности

Поскольку момент времени не содержит календарной информации, результирующая продолжительность избегает календарных продолжительностей, которые неоднозначны без календаря и опорной точки времени. Поэтому результат несбалансирован, так как hours может быть больше 24. Чтобы сбалансировать продолжительность, округлите результирующую продолжительность еще раз с использованием желаемого largestUnit, передав relativeTo, который несет календарную информацию.

const lastUpdated = Temporal.Instant.fromEpochMilliseconds(1735235418000);
const now = Temporal.Now.instant();
const duration = now.since(lastUpdated, { smallestUnit: "minutes" });
const roundedDuration = duration.round({
  largestUnit: "years",
  // Use the ISO calendar; you can convert to another calendar using
  // withCalendar()
  relativeTo: now.toZonedDateTimeISO("UTC"),
});
console.log(`Last updated ${roundedDuration.toLocaleString("en-US")} ago`);

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

Спецификация
Temporal
# sec-temporal.instant.prototype.since

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

Настольные компьютеры Мобильные устройства Сервер
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
since
144
144
139
128
preview
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

См. также

  • Temporal.Instant
  • Temporal.Duration
  • Temporal.Instant.prototype.add()
  • Temporal.Instant.prototype.subtract()
  • Temporal.Instant.prototype.until()

© 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/Instant/since

Spec-Zone.ru

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