ClockInterface
extends
ClockInterface
in
Расширенный контракт часов поверх PSR-20.
Любая реализация пакета отдаёт текущий момент как DateTimeImmutable (совместимость с PSR-20) и дополнительно предоставляет дешёвые примитивы: unix-время, микросекундную метку и работу с таймзоной без создания промежуточных объектов.
Table of Contents
Methods
- freeze() : AdjustableClockInterface
- Снимок текущего момента: замороженные часы с управляемым временем.
- microtime() : float
- Текущий момент в секундах с дробной микросекундной частью.
- timestamp() : int
- Текущий unix-timestamp в секундах.
- timezone() : DateTimeZone
- Таймзона, в которой часы отдают время.
- withTimezone() : static
- Копия часов с другой таймзоной; исходный объект не меняется.
Methods
freeze()
Снимок текущего момента: замороженные часы с управляемым временем.
public
freeze() : AdjustableClockInterface
Полезно зафиксировать «сейчас» любых часов — системных, монотонных, декорированных — и дальше детерминированно сдвигать его в тесте.
Return values
AdjustableClockInterface —Снимок текущего момента: замороженные часы с управляемым временем
microtime()
Текущий момент в секундах с дробной микросекундной частью.
public
microtime() : float
Return values
float —секунды с эпохи Unix (аналог microtime(true))
timestamp()
Текущий unix-timestamp в секундах.
public
timestamp() : int
Дешевле, чем now()->getTimestamp(): реализациям разрешено не создавать
объект даты вовсе.
Return values
int —секунды с 1970-01-01T00:00:00Z
timezone()
Таймзона, в которой часы отдают время.
public
timezone() : DateTimeZone
Return values
DateTimeZone —Таймзона, в которой часы отдают время
withTimezone()
Копия часов с другой таймзоной; исходный объект не меняется.
public
withTimezone(DateTimeZone|non-empty-string $timezone) : static
Parameters
- $timezone : DateTimeZone|non-empty-string
-
объект или идентификатор таймзоны (например,
Europe/Moscow)