CloudCastle Clock API

TruncatingClock
in package
implements ClockInterface

FinalYes

Декоратор-усечение: моменты внутренних часов округляются вниз до границы единицы.

Обобщение идеи 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
throws
InvalidClockValueException

если идентификатор таймзоны не распознан

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
throws
InvalidClockValueException

если идентификатор таймзоны не распознан

Attributes
#[Override]
Return values
static
On this page

Search results