# Класс DateTime

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

## Введение

Представление даты и времени.

Класс ведёт себя так же, как и DateTimeImmutable, за исключением того, что объекты модифицируются сами при вызове таких методов модификации, как DateTime::modify().

Внимание

Вызов методов для объектов класса DateTime изменит информацию, заключённую в этих объектах, если вы хотите предотвратить это, вам придётся использовать оператор `clone` для создания нового объекта. Используйте класс DateTimeImmutable вместо DateTime, чтобы получить рекомендуемое поведение по умолчанию.

## Обзор класса

class DateTime implements DateTimeInterface {
/* Наследуемые константы */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Методы */
public function __construct(string `$datetime` = "now", ?DateTimeZone `$timezone` = `null`)
public function add(DateInterval `$interval`): DateTime
public static function createFromFormat(string `$format`, string `$datetime`, ?DateTimeZone `$timezone` = `null`): DateTime|false
public static function createFromImmutable(DateTimeImmutable `$object`): static
public static function createFromInterface(DateTimeInterface `$object`): DateTime
public static function createFromTimestamp(int|float `$timestamp`): static
public function modify(string `$modifier`): DateTime
public static function __set_state(array `$array`): DateTime
public function setDate(int `$year`, int `$month`, int `$day`): DateTime
public function setISODate(int `$year`, int `$week`, int `$dayOfWeek` = 1): DateTime
public function setMicrosecond(int `$microsecond`): static
public function setTime(
int `$hour`,
int `$minute`,
int `$second` = 0,
int `$microsecond` = 0
): DateTime
public function setTimestamp(int `$timestamp`): DateTime
public function setTimezone(DateTimeZone `$timezone`): DateTime
public function sub(DateInterval `$interval`): DateTime
public function diff(DateTimeInterface `$targetObject`, bool `$absolute` = `false`): DateInterval
public function format(string `$format`): string
public function getMicrosecond(): int
public function getOffset(): int
public function getTimestamp(): int
public function getTimezone(): DateTimeZone|false
public function __serialize(): array
public function __unserialize(array `$data`): void
#[\Deprecated]
public function __wakeup(): void
}

## Список изменений

Версия | Описание
--- | ---
8.4.0 | Константы класса теперь типизированы.
7.2.0 | Константы класса теперь DateTime определены в DateTimeInterface.
7.1.0 | Конструктор класса DateTime теперь включает текущие микросекунды. До этого он всегда инициализировал микросекунды со значением `0`.

## Содержание

- DateTime::add — Изменяет объект DateTime, добавляя количество дней, месяцев, лет, часов, минут и секунд
- DateTime::__construct — Конструктор класса DateTime
- DateTime::createFromFormat — Разбирает строку времени по заданному формату
- DateTime::createFromImmutable — Создаёт новый объект DateTime на основе объекта DateTimeImmutable
- DateTime::createFromInterface — Создаёт новый объект DateTime на основе объекта, совместимого с интерфейсом DateTimeInterface
- DateTime::createFromTimestamp — Создаёт экземпляр из метки времени Unix
- DateTime::getLastErrors — Псевдоним DateTimeImmutable::getLastErrors
- DateTime::modify — Изменяет метку времени
- DateTime::__set_state — Обработчик __set_state
- DateTime::setDate — Устанавливает дату
- DateTime::setISODate — Устанавливает дату в формате ISO
- DateTime::setMicrosecond — Устанавливает микросекундную часть времени
- DateTime::setTime — Устанавливает время
- DateTime::setTimestamp — Устанавливает дату и время на основе метки времени Unix
- DateTime::setTimezone — Устанавливает часовой пояс для объекта DateTime
- DateTime::sub — Вычитает дни, месяцы, годы, часы, минуты и секунды из объекта DateTime

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open