CloudCastle Clock API

SystemClock
in package
implements SleepableClockInterface

FinalYes

Системные часы — продакшн-реализация PSR-20.

Отдают реальное время операционной системы. Горячий путь now() максимально дешёв: при системной таймзоне объект зоны не создаётся и не передаётся вовсе, timestamp()/microtime() не создают объектов даты вообще.

Table of Contents

Interfaces

SleepableClockInterface
Часы, умеющие «спать» до нужного момента.

Methods

freeze()  : FrozenClock
Снимок текущего момента в замороженные часы.
fromTimezone()  : self
Часы в заданной таймзоне.
microtime()  : float
Текущий момент в секундах с микросекундами без создания объекта даты.
now()  : DateTimeImmutable
Текущий системный момент.
sleep()  : void
Реальная блокировка процесса на заданное число секунд.
sleepUntil()  : void
Блокировка процесса до указанного момента; прошедший момент — мгновенный возврат.
system()  : self
Часы в системной таймзоне процесса.
timestamp()  : int
Текущий unix-timestamp без создания объекта даты.
timezone()  : DateTimeZone
Таймзона часов.
utc()  : self
Часы в UTC; экземпляр кэшируется.
withTimezone()  : static
Копия часов с другой таймзоной.

Methods

freeze()

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

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

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

fromTimezone()

Часы в заданной таймзоне.

public static fromTimezone(DateTimeZone|non-empty-string $timezone) : self
Parameters
$timezone : DateTimeZone|non-empty-string

объект или идентификатор таймзоны

Tags
throws
InvalidClockValueException

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

Return values
self

microtime()

Текущий момент в секундах с микросекундами без создания объекта даты.

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

Текущий момент в секундах с микросекундами без создания объекта даты

now()

Текущий системный момент.

public now() : DateTimeImmutable

Передача готового объекта зоны в 6+ раз быстрее, чем разбор дефолтной зоны при каждом вызове (см. бенчмарки пакета).

Attributes
#[Override]
Return values
DateTimeImmutable —

Текущий системный момент

sleep()

Реальная блокировка процесса на заданное число секунд.

public sleep(float $seconds) : void
Parameters
$seconds : float

неотрицательная длительность паузы

Tags
throws
InvalidClockValueException

при отрицательной длительности

Attributes
#[Override]

sleepUntil()

Блокировка процесса до указанного момента; прошедший момент — мгновенный возврат.

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

момент, до которого блокируется процесс

Attributes
#[Override]

system()

Часы в системной таймзоне процесса.

public static system() : self

Зона фиксируется в момент создания: последующая смена date_default_timezone_set() на созданные часы не влияет.

Return values
self

timestamp()

Текущий unix-timestamp без создания объекта даты.

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

Текущий unix-timestamp без создания объекта даты

timezone()

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

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

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

utc()

Часы в UTC; экземпляр кэшируется.

public static utc() : self
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