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.InstantTemporal.DurationTemporal.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