CloudCastle Clock API

FrozenClock
in package
implements AdjustableClockInterface uses AdjustsTimeTrait

FinalYes

Замороженные часы: время стоит, пока его явно не сдвинут.

Основной инструмент детерминированных тестов: now() всегда возвращает один и тот же момент. Сдвиг — только явными setTo()/modify()/ advance()/rewind().

Table of Contents

Interfaces

AdjustableClockInterface
Часы с управляемым временем — для тестов и симуляций.

Methods

__construct()  : mixed
Заморозить часы на указанном моменте.
advance()  : void
Сдвинуть время вперёд на интервал или число секунд.
freeze()  : FrozenClock
Снимок текущего момента в замороженные часы.
from()  : self
Заморозить на моменте, заданном объектом или строкой.
fromNow()  : self
Заморозить на текущем системном моменте.
fromUtcNow()  : self
Заморозить на текущем моменте в UTC.
microtime()  : float
Виртуальный момент в секундах с дробной микросекундной частью.
modify()  : void
Сдвинуть время строкой-модификатором формата `DateTimeImmutable::modify()`.
now()  : DateTimeImmutable
Текущий виртуальный момент.
rewind()  : void
Сдвинуть время назад на интервал или число секунд.
setTo()  : void
Выставить часы точно на указанный момент; таймзона берётся из него же.
timestamp()  : int
Unix-timestamp виртуального момента в секундах.
timezone()  : DateTimeZone
Таймзона часов.
withTimezone()  : static
Копия часов с тем же моментом, переведённым в другую таймзону.

Methods

__construct()

Заморозить часы на указанном моменте.

public __construct(DateTimeImmutable $moment) : mixed
Parameters
$moment : DateTimeImmutable

момент, на котором фиксируются часы

advance()

Сдвинуть время вперёд на интервал или число секунд.

public advance(DateInterval|float $duration) : void
Parameters
$duration : DateInterval|float

интервал либо неотрицательные секунды

Tags
throws
InvalidClockValueException

при отрицательных секундах

Attributes
#[Override]

freeze()

Снимок текущего момента в замороженные часы.

public freeze() : FrozenClock
Attributes
#[Override]
Return values
FrozenClock —

Снимок текущего момента в замороженные часы

from()

Заморозить на моменте, заданном объектом или строкой.

public static from(DateTimeImmutable|non-empty-string $moment[, DateTimeZone|non-empty-string|null $timezone = null ]) : self
Parameters
$moment : DateTimeImmutable|non-empty-string

момент («2026-01-01 12:00:00», «now», объект)

$timezone : DateTimeZone|non-empty-string|null = null

таймзона разбора строки; null — системная

Tags
throws
InvalidClockValueException

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

Return values
self

fromNow()

Заморозить на текущем системном моменте.

public static fromNow() : self
Return values
self

fromUtcNow()

Заморозить на текущем моменте в UTC.

public static fromUtcNow() : self
Return values
self

microtime()

Виртуальный момент в секундах с дробной микросекундной частью.

public microtime() : float
Attributes
#[Override]
Return values
float —

Виртуальный момент в секундах с дробной микросекундной частью

modify()

Сдвинуть время строкой-модификатором формата `DateTimeImmutable::modify()`.

public modify(non-empty-string $modifier) : void
Parameters
$modifier : non-empty-string

например +1 day, -2 hours

Tags
throws
InvalidClockValueException

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

Attributes
#[Override]

now()

Текущий виртуальный момент.

public now() : DateTimeImmutable
Attributes
#[Override]
Return values
DateTimeImmutable —

Текущий виртуальный момент

rewind()

Сдвинуть время назад на интервал или число секунд.

public rewind(DateInterval|float $duration) : void
Parameters
$duration : DateInterval|float

интервал либо неотрицательные секунды

Tags
throws
InvalidClockValueException

при отрицательных секундах

Attributes
#[Override]

setTo()

Выставить часы точно на указанный момент; таймзона берётся из него же.

public setTo(DateTimeImmutable $moment) : void
Parameters
$moment : DateTimeImmutable

целевой момент времени

Attributes
#[Override]

timestamp()

Unix-timestamp виртуального момента в секундах.

public timestamp() : int
Attributes
#[Override]
Return values
int —

Unix-timestamp виртуального момента в секундах

timezone()

Таймзона часов.

public timezone() : DateTimeZone
Attributes
#[Override]
Return values
DateTimeZone —

Таймзона часов

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