Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

DateTimeImmutable

Объект даты и времени, который нельзя изменить: каждое действие возвращает новый объект.

Синтаксис

new DateTimeImmutable(string $datetime = "now", ?DateTimeZone $timezone = null)

Параметры

ПараметрТипОписание
$datetimestringДата строкой; по умолчанию — текущий момент.
$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.

См. также

  • date — Форматирует дату и время.
  • strtotime — Превращает текстовое описание даты в метку времени.
  • checkdate — Проверяет, существует ли такая дата.

Вопросы и ответы по теме

В учебнике

  • Дата и время — Работа с датами в PHP — функция date, класс DateTimeImmutable, форматы, сложение и разница дат.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.