Перейти к содержимому

date_interval_create_from_date_string()

Что такое date_interval_create_from_date_string()?

Функция date_interval_create_from_date_string() — это встроенная функция PHP, которая создаёт новый объект DateInterval на основе строкового представления интервала. Она принимает один строковый параметр.

Примечание: Эта функция устарела в PHP 8.2 и запланирована к удалению в будущей версии.

Как это работает?

Функция разбирает предоставленную строку с помощью strtotime(). К распространённым форматам относятся строки относительного времени, такие как '+1 day', '1 week' или '2 hours 30 minutes'.

При успешном выполнении она возвращает объект DateInterval, или false, если строку не удалось разобрать.

Обработка ошибок: Всегда проверяйте возвращаемое значение перед использованием объекта. Для современных версий PHP рекомендуется напрямую использовать конструктор DateInterval в качестве надёжной альтернативы.

Ниже приведён пример использования функции:

Базовое использование

php
<?php

$interval = date_interval_create_from_date_string('1 day');

В этом примере мы создаём новый объект DateInterval, представляющий интервал в один день.

Примеры

Рассмотрим несколько примеров использования этой функции.

Пример 1: Добавление интервала к дате

В этом примере создаётся интервал в один день, который затем добавляется к объекту DateTime:

Добавление интервала к дате в PHP

php
<?php

$date = new DateTime('2023-03-03');
$interval = date_interval_create_from_date_string('1 day');
$date->add($interval);
echo $date->format('Y-m-d');

Результат выполнения этого кода:


console
2023-03-04

Пример 2: Форматирование интервала

В этом примере создаётся интервал в один месяц, который затем форматируется с помощью DateInterval::format():

Форматирование интервала даты в PHP

php
<?php

$interval = date_interval_create_from_date_string('1 month');
echo $interval->format('%m months');

Результат выполнения этого кода:


console
01 months

Советы по оптимизации производительности

Вот несколько советов по оптимизации производительности функции:

  • Используйте краткие относительные строки (например, '1 day' вместо 'P0Y0M1D'), чтобы снизить накладные расходы на парсинг.
  • Кэшируйте объекты DateInterval при их повторном использовании в рамках одного выполнения скрипта, чтобы минимизировать создание объектов.
  • Избегайте создания интервалов внутри циклов; определяйте их заранее за пределами цикла и используйте повторно по мере необходимости.

Заключение

В этой статье мы обсудили функцию date_interval_create_from_date_string(). Обратите внимание, что она устарела в PHP 8.2 и запланирована к удалению в будущей версии. Для современных версий PHP рекомендуется напрямую использовать конструктор DateInterval (например, new DateInterval('P1D')). Мы объяснили принцип работы функции, привели примеры и дали советы по оптимизации её производительности. Надеемся, эта статья оказалась полезной.

Практика

Что делает PHP-функция date_interval_create_from_date_string?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.