Spec-Zone.ru › JavaScript

Temporal.PlainTime.prototype.since()

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

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

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

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

Синтаксис

since(other)
since(other, options)

Параметры

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

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

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

Исключения

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

Примеры

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

const lunchTime = Temporal.PlainTime.from("12:30:00");
const now = Temporal.Now.plainTimeISO();
const duration = now.since(lunchTime);
console.log(`You had lunch ${duration.toLocaleString("en-US")} ago`);
// Example output: "You had lunch 3 hr, 42 min, 21 sec, 343 ms, 131 μs, 718 ns ago"

const duration2 = now.since(lunchTime, { smallestUnit: "minutes" });
console.log(`You had lunch ${duration2.toLocaleString("en-US")} ago`);
// Example output: "You had lunch 3 hr, 42 min ago"

const duration3 = now.since(lunchTime, {
  largestUnit: "minutes",
  smallestUnit: "minutes",
});
console.log(`You had lunch ${duration3.toLocaleString("en-US")} ago`);
// Example output: "You had lunch 222 min ago"

Округление результата

По умолчанию дробная часть smallestUnit отсекается. Вы можете округлить ее, используя параметры roundingIncrement и roundingMode.

const time1 = Temporal.PlainTime.from("12:30:00");
const time2 = Temporal.PlainTime.from("12:30:01");
const duration = time2.since(time1, {
  smallestUnit: "seconds",
  roundingIncrement: 15,
  roundingMode: "ceil",
});
console.log(duration.toString()); // "PT15S"

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

Спецификация
Temporal
# sec-temporal.plaintime.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.PlainTime
  • Temporal.Duration
  • Temporal.PlainTime.prototype.add()
  • Temporal.PlainTime.prototype.subtract()
  • Temporal.PlainTime.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/PlainTime/since

Spec-Zone.ru

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