FrozenClock
in package
implements
AdjustableClockInterface
uses
AdjustsTimeTrait
Замороженные часы: время стоит, пока его явно не сдвинут.
Основной инструмент детерминированных тестов: 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
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
Return values
selffromNow()
Заморозить на текущем системном моменте.
public
static fromNow() : self
Return values
selffromUtcNow()
Заморозить на текущем моменте в UTC.
public
static fromUtcNow() : self
Return values
selfmicrotime()
Виртуальный момент в секундах с дробной микросекундной частью.
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
Attributes
- #[Override]
now()
Текущий виртуальный момент.
public
now() : DateTimeImmutable
Attributes
- #[Override]
Return values
DateTimeImmutable —Текущий виртуальный момент
rewind()
Сдвинуть время назад на интервал или число секунд.
public
rewind(DateInterval|float $duration) : void
Parameters
- $duration : DateInterval|float
-
интервал либо неотрицательные секунды
Tags
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
Attributes
- #[Override]