CloudCastle Clock API

CalendarDate extends DateTimeImmutable
in package
uses CalendarComparisonsTrait, CalendarFormattingTrait, CalendarHelpersTrait, CalendarMacrosTrait

FinalYes

Иммутабельная календарная дата поверх {@see DateTimeImmutable} с богатой работой по григорианскому календарю — то, ради чего обычно берут Carbon, но без единой внешней зависимости.

Возможности сверх нативного DateTimeImmutable:

  • календарная арифметика месяцев и лет с явным выбором поведения на конце месяца: addMonths() (нативное переполнение: 31 января + 1 мес = 3 марта) и addMonthsNoOverflow() (прижатие к последнему дню: 31 января → 28/29 февраля);
  • границы периодов (startOfMonth(), endOfQuarter() и т.д.);
  • календарные геттеры (quarter(), isLeapYear(), weekOfYear());
  • локализованные названия и форматирование на шести языках без ext-intl (monthName(), isoFormat(), diffForHumans()).

Конструктор не переопределяется: наследуются нативные modify()/add()/sub()/ setDate()/setTime(), возвращающие CalendarDate. Точку «сейчас» берут фабрики now()/fromClock() — от часов приложения, поэтому дата детерминирована в тестах.

Table of Contents

Methods

__call()  : mixed
Вызов макроса как метода: `$date->addBusinessDays(3)`.
addDay()  : static
Прибавить один день.
addDays()  : static
Прибавить дни.
addHours()  : static
Прибавить часы.
addMinutes()  : static
Прибавить минуты.
addMonth()  : static
Прибавить один месяц (нативное переполнение).
addMonths()  : static
Прибавить месяцы (нативное поведение: 31 января + 1 мес = 3 марта).
addMonthsNoOverflow()  : static
Прибавить месяцы без переполнения: день прижимается к последнему дню целевого месяца (31 января + 1 мес = 28/29 февраля).
addSeconds()  : static
Прибавить секунды.
addWeeks()  : static
Прибавить недели.
addYear()  : static
Прибавить один год (нативное переполнение).
addYears()  : static
Прибавить годы (нативное поведение: 29 февраля + 1 год = 1 марта).
addYearsNoOverflow()  : static
Прибавить годы без переполнения (29 февраля + 1 год = 28 февраля).
age()  : int
Возраст в полных годах относительно часов приложения.
callMacro()  : mixed
Явный вызов макроса — без магии, видимый статическим анализаторам.
copy()  : static
Копия момента как отдельный экземпляр (идиома Carbon; объект иммутабелен, копия полезна для читаемости цепочек).
day()  : int
День месяца.
dayName()  : string
Локализованное название дня недели.
dayOfWeek()  : int
День недели (0=воскресенье … 6=суббота), совместимо с `date('w')`.
dayOfYear()  : int
Порядковый день года (1–366).
daysInMonth()  : int
Число дней в текущем месяце (28–31).
daysInYear()  : int
Число дней в году (365 или 366).
diffForHumans()  : string
Человекочитаемая разница относительно другого момента (или «сейчас» глобальных часов) на выбранном языке: «5 дней назад», «in 2 hours».
diffInDays()  : int
Абсолютная разница в целых сутках.
diffInHours()  : int
Абсолютная разница в целых часах.
diffInMinutes()  : int
Абсолютная разница в целых минутах.
diffInMonths()  : int
Абсолютная календарная разница в целых месяцах.
diffInSeconds()  : int
Абсолютная разница в целых секундах.
diffInWeeks()  : int
Абсолютная разница в целых неделях.
diffInYears()  : int
Абсолютная календарная разница в целых годах.
endOfCentury()  : static
Конец века (последний год века — 2100, 2000 и т.д., 23:59:59.999999).
endOfDay()  : static
Конец суток (23:59:59.999999).
endOfDecade()  : static
Конец десятилетия (последний день года, кратного 10 плюс 9, 23:59:59.999999).
endOfMonth()  : static
Конец месяца (последний день, 23:59:59.999999).
endOfQuarter()  : static
Конец квартала (последний день последнего месяца квартала, 23:59:59.999999).
endOfWeek()  : static
Конец недели (воскресенье по ISO-8601, 23:59:59.999999).
endOfYear()  : static
Конец года (31 декабря, 23:59:59.999999).
firstOfMonth()  : static
Первый день месяца (день = 1, время сохраняется — в отличие от {@see startOfMonth()}, обнуляющей время).
flushMacros()  : void
Удалить все зарегистрированные макросы.
fromClock()  : static
Календарная дата «сейчас» от заданных часов.
fromInterface()  : static
Календарная дата из любого источника даты.
hasMacro()  : bool
Зарегистрирован ли макрос с таким именем.
isAfter()  : bool
Строго позже ли другого момента.
isBefore()  : bool
Строго раньше ли другого момента.
isBetween()  : bool
Попадает ли момент в интервал между двумя границами (порядок границ любой).
isCurrentDay()  : bool
Сегодняшний ли это день относительно часов приложения.
isCurrentMonth()  : bool
Текущий ли это месяц (год + месяц) относительно часов приложения.
isCurrentYear()  : bool
Текущий ли это год относительно часов приложения.
isFirstOfMonth()  : bool
Первое ли это число месяца.
isFriday()  : bool
Пятница ли это.
isFuture()  : bool
В будущем ли дата относительно «сейчас» глобальных часов.
isLastOfMonth()  : bool
Последнее ли это число месяца.
isLeapYear()  : bool
Високосный ли год.
isMidday()  : bool
Полдень ли это (12:00:00).
isMonday()  : bool
Понедельник ли это.
isoFormat()  : string
Форматирование в стиле moment.js/ISO с локализованными названиями.
isoWeekday()  : int
День недели по ISO-8601 (1=понедельник … 7=воскресенье).
isPast()  : bool
В прошлом ли дата относительно «сейчас» глобальных часов.
isSameDay()  : bool
Один ли календарный день с другим моментом (в собственных зонах).
isSameMonth()  : bool
Один ли календарный месяц (год + месяц) с другим моментом.
isSameQuarter()  : bool
Один ли квартал (год + квартал) с другим моментом.
isSameYear()  : bool
Один ли календарный год с другим моментом.
isSaturday()  : bool
Суббота ли это.
isStartOfDay()  : bool
Начало ли это суток (00:00:00.000000).
isSunday()  : bool
Воскресенье ли это.
isThursday()  : bool
Четверг ли это.
isToday()  : bool
Сегодня ли это относительно часов приложения.
isTomorrow()  : bool
Завтра ли это относительно часов приложения.
isTuesday()  : bool
Вторник ли это.
isWednesday()  : bool
Среда ли это.
isWeekday()  : bool
Будний ли это день (понедельник–пятница).
isWeekend()  : bool
Выходной ли это (суббота или воскресенье).
isYesterday()  : bool
Вчера ли это относительно часов приложения.
lastOfMonth()  : static
Последний день месяца (день = 28–31, время сохраняется).
macro()  : void
Зарегистрировать (или заменить) макрос.
max()  : static
Более поздний из двух моментов.
min()  : static
Более ранний из двух моментов.
month()  : int
Номер месяца.
monthName()  : string
Локализованное название месяца.
next()  : static
Ближайший указанный день недели строго после текущего.
now()  : static
Календарная дата «сейчас» от глобальных часов приложения.
parse()  : static
Разбор строки даты/времени с типизированным исключением вместо `false`.
previous()  : static
Ближайший указанный день недели строго до текущего.
quarter()  : int
Квартал (1–4).
setDay()  : static
Установить день месяца, сохранив остальные поля.
setHour()  : static
Установить час, сохранив минуты и секунды.
setMinute()  : static
Установить минуты, сохранив час и секунды.
setMonth()  : static
Установить месяц, сохранив остальные поля.
setSecond()  : static
Установить секунды, сохранив час и минуты.
setYear()  : static
Установить год, сохранив остальные поля.
startOfCentury()  : static
Начало века (первый год века — 2001, 1901 и т.д., 00:00:00).
startOfDay()  : static
Начало суток (00:00:00.000000).
startOfDecade()  : static
Начало десятилетия (первый день года, кратного 10, 00:00:00).
startOfMonth()  : static
Начало месяца (первый день, 00:00:00).
startOfQuarter()  : static
Начало квартала (первый день первого месяца квартала, 00:00:00).
startOfWeek()  : static
Начало недели (понедельник по ISO-8601, 00:00:00).
startOfYear()  : static
Начало года (1 января, 00:00:00).
subDay()  : static
Отнять один день.
subDays()  : static
Отнять дни.
subHours()  : static
Отнять часы.
subMinutes()  : static
Отнять минуты.
subMonth()  : static
Отнять один месяц (нативное переполнение).
subMonths()  : static
Отнять месяцы (нативное поведение).
subMonthsNoOverflow()  : static
Отнять месяцы без переполнения.
subSeconds()  : static
Отнять секунды.
subWeeks()  : static
Отнять недели.
subYear()  : static
Отнять один год (нативное переполнение).
subYears()  : static
Отнять годы (нативное поведение).
subYearsNoOverflow()  : static
Отнять годы без переполнения.
toArray()  : array{year: int, month: int, day: int, hour: int, minute: int, second: int}
Разложение на календарные компоненты.
toAtomString()  : string
ATOM: «2026-06-15T13:45:30+00:00».
toCookieString()  : string
Cookie: «Monday, 15-Jun-2026 13:45:30 UTC».
toDateString()  : string
Дата без времени: «2026-06-15».
toDateTimeLocalString()  : string
Локальные дата и время без зоны: «2026-06-15T13:45:30».
toDateTimeString()  : string
Дата и время: «2026-06-15 13:45:30».
toIso8601String()  : string
ISO 8601: «2026-06-15T13:45:30+00:00».
toRfc2822String()  : string
RFC 2822: «Mon, 15 Jun 2026 13:45:30 +0000».
toRssString()  : string
RSS: «Mon, 15 Jun 2026 13:45:30 +0000».
toTimeString()  : string
Время без даты: «13:45:30».
toW3cString()  : string
W3C: «2026-06-15T13:45:30+00:00».
weekOfMonth()  : int
Порядковый номер недели внутри месяца (1–6).
weekOfYear()  : int
Номер недели по ISO-8601 (1–53).
year()  : int
Год.

Methods

__call()

Вызов макроса как метода: `$date->addBusinessDays(3)`.

public __call(string $name, array<string|int, mixed> $arguments) : mixed
Parameters
$name : string

имя вызванного метода

$arguments : array<string|int, mixed>

аргументы вызова

Tags
throws
UnknownMacroException

если макрос с таким именем не зарегистрирован

Return values
mixed —

результат макроса

addDay()

Прибавить один день.

public addDay() : static
Return values
static —

сдвинутая дата

addDays()

Прибавить дни.

public addDays(int $days) : static
Parameters
$days : int

число дней (может быть отрицательным)

Return values
static —

сдвинутая дата

addHours()

Прибавить часы.

public addHours(int $hours) : static
Parameters
$hours : int

число часов (знак допустим)

Return values
static —

сдвинутая дата

addMinutes()

Прибавить минуты.

public addMinutes(int $minutes) : static
Parameters
$minutes : int

число минут (знак допустим)

Return values
static —

сдвинутая дата

addMonth()

Прибавить один месяц (нативное переполнение).

public addMonth() : static
Return values
static —

сдвинутая дата

addMonths()

Прибавить месяцы (нативное поведение: 31 января + 1 мес = 3 марта).

public addMonths(int $months) : static
Parameters
$months : int

число месяцев (может быть отрицательным)

Return values
static —

сдвинутая дата

addMonthsNoOverflow()

Прибавить месяцы без переполнения: день прижимается к последнему дню целевого месяца (31 января + 1 мес = 28/29 февраля).

public addMonthsNoOverflow(int $months) : static
Parameters
$months : int

число месяцев (может быть отрицательным)

Return values
static —

сдвинутая дата без выхода за границу месяца

addSeconds()

Прибавить секунды.

public addSeconds(int $seconds) : static
Parameters
$seconds : int

число секунд (знак допустим)

Return values
static —

сдвинутая дата

addWeeks()

Прибавить недели.

public addWeeks(int $weeks) : static
Parameters
$weeks : int

число недель (может быть отрицательным)

Return values
static —

сдвинутая дата

addYear()

Прибавить один год (нативное переполнение).

public addYear() : static
Return values
static —

сдвинутая дата

addYears()

Прибавить годы (нативное поведение: 29 февраля + 1 год = 1 марта).

public addYears(int $years) : static
Parameters
$years : int

число лет (может быть отрицательным)

Return values
static —

сдвинутая дата

addYearsNoOverflow()

Прибавить годы без переполнения (29 февраля + 1 год = 28 февраля).

public addYearsNoOverflow(int $years) : static
Parameters
$years : int

число лет (может быть отрицательным)

Return values
static —

сдвинутая дата без выхода за границу месяца

age()

Возраст в полных годах относительно часов приложения.

public age() : int
Return values
int —

число полных лет между датой и текущим моментом

callMacro()

Явный вызов макроса — без магии, видимый статическим анализаторам.

public callMacro(string $name, mixed ...$arguments) : mixed
Parameters
$name : string

имя макроса

$arguments : mixed

аргументы после даты

Tags
throws
UnknownMacroException

если макрос с таким именем не зарегистрирован

Return values
mixed —

результат макроса

copy()

Копия момента как отдельный экземпляр (идиома Carbon; объект иммутабелен, копия полезна для читаемости цепочек).

public copy() : static
Return values
static —

новый экземпляр с тем же моментом

day()

День месяца.

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

день

dayName()

Локализованное название дня недели.

public dayName([string $locale = 'en' ][, bool $short = false ]) : string
Parameters
$locale : string = 'en'

код языка (ru/en/de/fr/es/it)

$short : bool = false

короткая форма

Tags
throws
InvalidClockValueException

если язык не поддерживается

Return values
string —

название дня недели на выбранном языке

dayOfWeek()

День недели (0=воскресенье … 6=суббота), совместимо с `date('w')`.

public dayOfWeek() : int
Return values
int —

день недели

dayOfYear()

Порядковый день года (1–366).

public dayOfYear() : int
Return values
int —

день года

daysInMonth()

Число дней в текущем месяце (28–31).

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

дней в месяце

daysInYear()

Число дней в году (365 или 366).

public daysInYear() : int
Return values
int —

дней в году

diffForHumans()

Человекочитаемая разница относительно другого момента (или «сейчас» глобальных часов) на выбранном языке: «5 дней назад», «in 2 hours».

public diffForHumans([DateTimeInterface|null $other = null ][, string $locale = 'en' ]) : string
Parameters
$other : DateTimeInterface|null = null

точка отсчёта; null — «сейчас» часов приложения

$locale : string = 'en'

код языка (ru/en/de/fr/es/it)

Tags
throws
InvalidClockValueException

если язык не поддерживается

Return values
string —

локализованная разница

diffInDays()

Абсолютная разница в целых сутках.

public diffInDays(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

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

diffInHours()

Абсолютная разница в целых часах.

public diffInHours(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

неотрицательное число полных часов

diffInMinutes()

Абсолютная разница в целых минутах.

public diffInMinutes(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

неотрицательное число полных минут

diffInMonths()

Абсолютная календарная разница в целых месяцах.

public diffInMonths(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

неотрицательное число полных календарных месяцев

diffInSeconds()

Абсолютная разница в целых секундах.

public diffInSeconds(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

неотрицательное число секунд

diffInWeeks()

Абсолютная разница в целых неделях.

public diffInWeeks(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

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

diffInYears()

Абсолютная календарная разница в целых годах.

public diffInYears(DateTimeInterface $other) : int
Parameters
$other : DateTimeInterface

второй момент

Return values
int —

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

endOfCentury()

Конец века (последний год века — 2100, 2000 и т.д., 23:59:59.999999).

public endOfCentury() : static
Return values
static —

последний момент века

endOfDay()

Конец суток (23:59:59.999999).

public endOfDay() : static
Return values
static —

та же дата в конце суток

endOfDecade()

Конец десятилетия (последний день года, кратного 10 плюс 9, 23:59:59.999999).

public endOfDecade() : static
Return values
static —

последний момент десятилетия

endOfMonth()

Конец месяца (последний день, 23:59:59.999999).

public endOfMonth() : static
Return values
static —

последний момент месяца

endOfQuarter()

Конец квартала (последний день последнего месяца квартала, 23:59:59.999999).

public endOfQuarter() : static
Return values
static —

последний момент квартала

endOfWeek()

Конец недели (воскресенье по ISO-8601, 23:59:59.999999).

public endOfWeek() : static
Return values
static —

последний момент недели

endOfYear()

Конец года (31 декабря, 23:59:59.999999).

public endOfYear() : static
Return values
static —

последний момент года

firstOfMonth()

Первый день месяца (день = 1, время сохраняется — в отличие от {@see startOfMonth()}, обнуляющей время).

public firstOfMonth() : static
Return values
static —

та же дата с первым числом месяца

flushMacros()

Удалить все зарегистрированные макросы.

public static flushMacros() : void

fromClock()

Календарная дата «сейчас» от заданных часов.

public static fromClock(ClockInterface $clock[, DateTimeZone|non-empty-string|null $timezone = null ]) : static
Parameters
$clock : ClockInterface

источник времени

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

таймзона результата; null — зона часов

Tags
throws
InvalidClockValueException

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

Return values
static —

текущий момент указанных часов как календарная дата

fromInterface()

Календарная дата из любого источника даты.

public static fromInterface(DateTimeInterface $moment) : static
Parameters
$moment : DateTimeInterface

исходный момент времени

Return values
static —

та же точка как календарная дата

hasMacro()

Зарегистрирован ли макрос с таким именем.

public static hasMacro(string $name) : bool
Parameters
$name : string

имя метода

Return values
bool —

макрос зарегистрирован

isAfter()

Строго позже ли другого момента.

public isAfter(DateTimeInterface $other) : bool
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
bool —

true, если этот момент позже

isBefore()

Строго раньше ли другого момента.

public isBefore(DateTimeInterface $other) : bool
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
bool —

true, если этот момент раньше

isBetween()

Попадает ли момент в интервал между двумя границами (порядок границ любой).

public isBetween(DateTimeInterface $from, DateTimeInterface $to[, bool $inclusive = true ]) : bool
Parameters
$from : DateTimeInterface

одна граница интервала

$to : DateTimeInterface

другая граница интервала

$inclusive : bool = true

включать ли сами границы

Return values
bool —

true, если момент внутри интервала

isCurrentDay()

Сегодняшний ли это день относительно часов приложения.

public isCurrentDay() : bool
Return values
bool —

true, если календарный день совпадает с текущим

isCurrentMonth()

Текущий ли это месяц (год + месяц) относительно часов приложения.

public isCurrentMonth() : bool
Return values
bool —

true, если год и месяц совпадают с текущими

isCurrentYear()

Текущий ли это год относительно часов приложения.

public isCurrentYear() : bool
Return values
bool —

true, если год совпадает с текущим

isFirstOfMonth()

Первое ли это число месяца.

public isFirstOfMonth() : bool
Return values
bool —

true, если день равен 1

isFriday()

Пятница ли это.

public isFriday() : bool
Return values
bool —

true, если день недели — пятница

isFuture()

В будущем ли дата относительно «сейчас» глобальных часов.

public isFuture() : bool
Return values
bool —

true, если момент строго позже текущего

isLastOfMonth()

Последнее ли это число месяца.

public isLastOfMonth() : bool
Return values
bool —

true, если день равен длине месяца

isLeapYear()

Високосный ли год.

public isLeapYear() : bool
Return values
bool —

true для високосного года

isMidday()

Полдень ли это (12:00:00).

public isMidday() : bool
Return values
bool —

true для 12:00:00

isMonday()

Понедельник ли это.

public isMonday() : bool
Return values
bool —

true, если день недели — понедельник

isoFormat()

Форматирование в стиле moment.js/ISO с локализованными названиями.

public isoFormat(non-empty-string $format[, string $locale = 'en' ]) : string

Токены: YYYY YY MMMM MMM MM M DD D dddd ddd HH H mm m ss s. Прочие символы (разделители) сохраняются как есть.

Parameters
$format : non-empty-string

шаблон токенов

$locale : string = 'en'

код языка (ru/en/de/fr/es/it)

Tags
throws
InvalidClockValueException

если язык не поддерживается

Return values
string —

отформатированная строка

isoWeekday()

День недели по ISO-8601 (1=понедельник … 7=воскресенье).

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

день недели ISO

isPast()

В прошлом ли дата относительно «сейчас» глобальных часов.

public isPast() : bool
Return values
bool —

true, если момент строго раньше текущего

isSameDay()

Один ли календарный день с другим моментом (в собственных зонах).

public isSameDay(DateTimeInterface $other) : bool
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
bool —

true, если совпадают год, месяц и день

isSameMonth()

Один ли календарный месяц (год + месяц) с другим моментом.

public isSameMonth(DateTimeInterface $other) : bool
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
bool —

true, если совпадают год и месяц

isSameQuarter()

Один ли квартал (год + квартал) с другим моментом.

public isSameQuarter(DateTimeInterface $other) : bool
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
bool —

true, если совпадают год и квартал

isSameYear()

Один ли календарный год с другим моментом.

public isSameYear(DateTimeInterface $other) : bool
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
bool —

true, если совпадает год

isSaturday()

Суббота ли это.

public isSaturday() : bool
Return values
bool —

true, если день недели — суббота

isStartOfDay()

Начало ли это суток (00:00:00.000000).

public isStartOfDay() : bool
Return values
bool —

true для полуночи

isSunday()

Воскресенье ли это.

public isSunday() : bool
Return values
bool —

true, если день недели — воскресенье

isThursday()

Четверг ли это.

public isThursday() : bool
Return values
bool —

true, если день недели — четверг

isToday()

Сегодня ли это относительно часов приложения.

public isToday() : bool
Return values
bool —

true, если календарный день совпадает с текущим

isTomorrow()

Завтра ли это относительно часов приложения.

public isTomorrow() : bool
Return values
bool —

true, если это следующий календарный день

isTuesday()

Вторник ли это.

public isTuesday() : bool
Return values
bool —

true, если день недели — вторник

isWednesday()

Среда ли это.

public isWednesday() : bool
Return values
bool —

true, если день недели — среда

isWeekday()

Будний ли это день (понедельник–пятница).

public isWeekday() : bool
Return values
bool —

true для понедельника–пятницы

isWeekend()

Выходной ли это (суббота или воскресенье).

public isWeekend() : bool
Return values
bool —

true для субботы и воскресенья

isYesterday()

Вчера ли это относительно часов приложения.

public isYesterday() : bool
Return values
bool —

true, если это предыдущий календарный день

lastOfMonth()

Последний день месяца (день = 28–31, время сохраняется).

public lastOfMonth() : static
Return values
static —

та же дата с последним числом месяца

macro()

Зарегистрировать (или заменить) макрос.

public static macro(non-empty-string $name, Closure $macro) : void
Parameters
$name : non-empty-string

имя метода, под которым макрос будет доступен

$macro : Closure

замыкание fn (CalendarDate $date, mixed ...$args): mixed

max()

Более поздний из двух моментов.

public max(DateTimeInterface $other) : static
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
static —

этот момент либо $other, смотря какой позже

min()

Более ранний из двух моментов.

public min(DateTimeInterface $other) : static
Parameters
$other : DateTimeInterface

сравниваемый момент

Return values
static —

этот момент либо $other, смотря какой раньше

month()

Номер месяца.

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

месяц

monthName()

Локализованное название месяца.

public monthName([string $locale = 'en' ][, bool $short = false ]) : string
Parameters
$locale : string = 'en'

код языка (ru/en/de/fr/es/it)

$short : bool = false

короткая форма

Tags
throws
InvalidClockValueException

если язык не поддерживается

Return values
string —

название месяца на выбранном языке

next()

Ближайший указанный день недели строго после текущего.

public next(int $isoWeekday) : static
Parameters
$isoWeekday : int

целевой день недели ISO (1=понедельник … 7=воскресенье)

Return values
static —

следующая дата с этим днём недели

now()

Календарная дата «сейчас» от глобальных часов приложения.

public static now([DateTimeZone|non-empty-string|null $timezone = null ]) : static
Parameters
$timezone : DateTimeZone|non-empty-string|null = null

таймзона результата; null — зона часов

Tags
throws
InvalidClockValueException

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

Return values
static —

текущий момент как календарная дата

parse()

Разбор строки даты/времени с типизированным исключением вместо `false`.

public static parse(non-empty-string $datetime[, DateTimeZone|non-empty-string|null $timezone = null ]) : static
Parameters
$datetime : non-empty-string

строка даты/времени

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

таймзона результата

Tags
throws
InvalidClockValueException

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

Return values
static —

разобранная календарная дата

previous()

Ближайший указанный день недели строго до текущего.

public previous(int $isoWeekday) : static
Parameters
$isoWeekday : int

целевой день недели ISO (1=понедельник … 7=воскресенье)

Return values
static —

предыдущая дата с этим днём недели

quarter()

Квартал (1–4).

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

квартал

setDay()

Установить день месяца, сохранив остальные поля.

public setDay(int $day) : static
Parameters
$day : int

новый день

Return values
static —

дата с изменённым днём

setHour()

Установить час, сохранив минуты и секунды.

public setHour(int $hour) : static
Parameters
$hour : int

новый час

Return values
static —

дата с изменённым часом

setMinute()

Установить минуты, сохранив час и секунды.

public setMinute(int $minute) : static
Parameters
$minute : int

новые минуты

Return values
static —

дата с изменёнными минутами

setMonth()

Установить месяц, сохранив остальные поля.

public setMonth(int $month) : static
Parameters
$month : int

новый месяц

Return values
static —

дата с изменённым месяцем

setSecond()

Установить секунды, сохранив час и минуты.

public setSecond(int $second) : static
Parameters
$second : int

новые секунды

Return values
static —

дата с изменёнными секундами

setYear()

Установить год, сохранив остальные поля.

public setYear(int $year) : static
Parameters
$year : int

новый год

Return values
static —

дата с изменённым годом

startOfCentury()

Начало века (первый год века — 2001, 1901 и т.д., 00:00:00).

public startOfCentury() : static
Return values
static —

первый момент века

startOfDay()

Начало суток (00:00:00.000000).

public startOfDay() : static
Return values
static —

та же дата в начале суток

startOfDecade()

Начало десятилетия (первый день года, кратного 10, 00:00:00).

public startOfDecade() : static
Return values
static —

первый момент десятилетия

startOfMonth()

Начало месяца (первый день, 00:00:00).

public startOfMonth() : static
Return values
static —

первый момент месяца

startOfQuarter()

Начало квартала (первый день первого месяца квартала, 00:00:00).

public startOfQuarter() : static
Return values
static —

первый момент квартала

startOfWeek()

Начало недели (понедельник по ISO-8601, 00:00:00).

public startOfWeek() : static
Return values
static —

первый момент недели

startOfYear()

Начало года (1 января, 00:00:00).

public startOfYear() : static
Return values
static —

первый момент года

subDay()

Отнять один день.

public subDay() : static
Return values
static —

сдвинутая дата

subDays()

Отнять дни.

public subDays(int $days) : static
Parameters
$days : int

число дней

Return values
static —

сдвинутая дата

subHours()

Отнять часы.

public subHours(int $hours) : static
Parameters
$hours : int

число часов

Return values
static —

сдвинутая дата

subMinutes()

Отнять минуты.

public subMinutes(int $minutes) : static
Parameters
$minutes : int

число минут

Return values
static —

сдвинутая дата

subMonth()

Отнять один месяц (нативное переполнение).

public subMonth() : static
Return values
static —

сдвинутая дата

subMonths()

Отнять месяцы (нативное поведение).

public subMonths(int $months) : static
Parameters
$months : int

число месяцев

Return values
static —

сдвинутая дата

subMonthsNoOverflow()

Отнять месяцы без переполнения.

public subMonthsNoOverflow(int $months) : static
Parameters
$months : int

число месяцев

Return values
static —

сдвинутая дата без выхода за границу месяца

subSeconds()

Отнять секунды.

public subSeconds(int $seconds) : static
Parameters
$seconds : int

число секунд

Return values
static —

сдвинутая дата

subWeeks()

Отнять недели.

public subWeeks(int $weeks) : static
Parameters
$weeks : int

число недель

Return values
static —

сдвинутая дата

subYear()

Отнять один год (нативное переполнение).

public subYear() : static
Return values
static —

сдвинутая дата

subYears()

Отнять годы (нативное поведение).

public subYears(int $years) : static
Parameters
$years : int

число лет

Return values
static —

сдвинутая дата

subYearsNoOverflow()

Отнять годы без переполнения.

public subYearsNoOverflow(int $years) : static
Parameters
$years : int

число лет

Return values
static —

сдвинутая дата без выхода за границу месяца

toArray()

Разложение на календарные компоненты.

public toArray() : array{year: int, month: int, day: int, hour: int, minute: int, second: int}
Return values
array{year: int, month: int, day: int, hour: int, minute: int, second: int}

toAtomString()

ATOM: «2026-06-15T13:45:30+00:00».

public toAtomString() : string
Return values
string —

момент в формате ATOM

toCookieString()

Cookie: «Monday, 15-Jun-2026 13:45:30 UTC».

public toCookieString() : string
Return values
string —

момент в формате cookie

toDateString()

Дата без времени: «2026-06-15».

public toDateString() : string
Return values
string —

дата в формате Y-m-d

toDateTimeLocalString()

Локальные дата и время без зоны: «2026-06-15T13:45:30».

public toDateTimeLocalString() : string
Return values
string —

момент в формате Y-m-d\TH:i:s

toDateTimeString()

Дата и время: «2026-06-15 13:45:30».

public toDateTimeString() : string
Return values
string —

момент в формате Y-m-d H:i:s

toIso8601String()

ISO 8601: «2026-06-15T13:45:30+00:00».

public toIso8601String() : string
Return values
string —

момент по ISO 8601

toRfc2822String()

RFC 2822: «Mon, 15 Jun 2026 13:45:30 +0000».

public toRfc2822String() : string
Return values
string —

момент по RFC 2822

toRssString()

RSS: «Mon, 15 Jun 2026 13:45:30 +0000».

public toRssString() : string
Return values
string —

момент в формате RSS

toTimeString()

Время без даты: «13:45:30».

public toTimeString() : string
Return values
string —

время в формате H:i:s

toW3cString()

W3C: «2026-06-15T13:45:30+00:00».

public toW3cString() : string
Return values
string —

момент в формате W3C

weekOfMonth()

Порядковый номер недели внутри месяца (1–6).

public weekOfMonth() : int
Return values
int —

неделя месяца

weekOfYear()

Номер недели по ISO-8601 (1–53).

public weekOfYear() : int
Return values
int —

номер недели

year()

Год.

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

четырёхзначный год

On this page

Search results