TruncatingClock
in package
implements
ClockInterface
Декоратор-усечение: моменты внутренних часов округляются вниз до границы единицы.
Обобщение идеи MinuteClock из beste/clock на произвольные единицы
(TruncationUnit): секунда, минута, час, сутки. Типовое применение —
ключи кэша и группировка метрик по временным окнам.
Table of Contents
Interfaces
- ClockInterface
- Расширенный контракт часов поверх PSR-20.
Methods
- __construct() : mixed
- Обернуть часы усечением до границы единицы.
- freeze() : FrozenClock
- Снимок текущего момента в замороженные часы.
- microtime() : float
- Unix-момент усечённого времени (дробная часть всегда нулевая).
- now() : DateTimeImmutable
- Текущий момент, усечённый до границы единицы.
- timestamp() : int
- Unix-timestamp усечённого момента.
- timezone() : DateTimeZone
- Таймзона выдачи: переопределённая либо зона внутренних часов.
- toMinute() : self
- Часы, усечённые до минуты (паритет с beste/clock `MinuteClock`).
- withTimezone() : static
- То же усечение над теми же внутренними часами в другой таймзоне.
Methods
__construct()
Обернуть часы усечением до границы единицы.
public
__construct(ClockInterface $inner[, TruncationUnit $unit = TruncationUnit::Second ][, DateTimeZone|non-empty-string|null $timezone = null ]) : mixed
Parameters
- $inner : ClockInterface
-
декорируемые часы
- $unit : TruncationUnit = TruncationUnit::Second
-
единица усечения
- $timezone : DateTimeZone|non-empty-string|null = null
-
таймзона выдачи;
null— зона внутренних часов
Tags
freeze()
Снимок текущего момента в замороженные часы.
public
freeze() : FrozenClock
Attributes
- #[Override]
Return values
FrozenClock —Снимок текущего момента в замороженные часы
microtime()
Unix-момент усечённого времени (дробная часть всегда нулевая).
public
microtime() : float
Attributes
- #[Override]
Return values
float —Unix-момент усечённого времени (дробная часть всегда нулевая)
now()
Текущий момент, усечённый до границы единицы.
public
now() : DateTimeImmutable
При переопределённой таймзоне момент сначала переводится в неё и только затем усекается: границы суток и часов зонозависимы.
Attributes
- #[Override]
Return values
DateTimeImmutable —Текущий момент, усечённый до границы единицы
timestamp()
Unix-timestamp усечённого момента.
public
timestamp() : int
Attributes
- #[Override]
Return values
int —Unix-timestamp усечённого момента
timezone()
Таймзона выдачи: переопределённая либо зона внутренних часов.
public
timezone() : DateTimeZone
Attributes
- #[Override]
Return values
DateTimeZone —Таймзона выдачи: переопределённая либо зона внутренних часов
toMinute()
Часы, усечённые до минуты (паритет с beste/clock `MinuteClock`).
public
static toMinute(ClockInterface $inner) : self
Parameters
- $inner : ClockInterface
-
исходные часы
Return values
self —часы с усечением момента до минуты
withTimezone()
То же усечение над теми же внутренними часами в другой таймзоне.
public
withTimezone(DateTimeZone|non-empty-string $timezone) : static
Связь с внутренними часами сохраняется: если они управляемые, их дальнейшие сдвиги видны и новому декоратору.
Parameters
- $timezone : DateTimeZone|non-empty-string
-
объект или идентификатор таймзоны
Tags
Attributes
- #[Override]