DateTimeImmutable
Объект даты и времени, который нельзя изменить: каждое действие возвращает новый объект.
Синтаксис
new DateTimeImmutable(string $datetime = "now", ?DateTimeZone $timezone = null)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| $datetime | string | Дата строкой; по умолчанию — текущий момент. |
| $timezone | ?DateTimeZone | Необязательный. Часовой пояс. |
Возвращаемое значение
DateTimeImmutableОбъект с методами `format()`, `modify()`, `diff()`.
Примеры
Формат и сдвиг даты:
<?php
$date = new DateTimeImmutable('2025-01-30 14:05');
echo $date->format('d.m.Y H:i'), "\n";
echo $date->modify('+7 days')->format('d.m.Y');Результат:
30.01.2025 14:05
06.02.2025Разница между датами и сравнение:
<?php
$start = new DateTimeImmutable('2025-01-01');
$finish = new DateTimeImmutable('2025-03-01');
echo $start->diff($finish)->days, "\n";
var_dump($start < $finish);Результат:
59
bool(true)Разбор даты в известном формате:
<?php
$date = DateTimeImmutable::createFromFormat('d.m.Y', '30.01.2025');
echo $date->format('Y-m-d');Результат:
2025-01-30Примечания
Старый класс DateTime меняет сам объект при вызове modify(), из-за чего даты незаметно «портятся». В новом коде используйте DateTimeImmutable.
См. также
Вопросы и ответы по теме
- Как вывести «5 минут назад»
- Как вычислить возраст по дате рождения
- Как перевести время в другой часовой пояс
- Как получить первый и последний день месяца
- Как получить текущую дату и время
- Как преобразовать метку времени в дату и обратно
- Как прибавить дни к дате
- Как проверить, выходной ли день
- Как проверить, что дата правильная
- Как сравнить две даты
- Как узнать день недели
В учебнике
- Дата и время — Работа с датами в PHP — функция date, класс DateTimeImmutable, форматы, сложение и разница дат.