PHP 8.5: Новая константа `PHP_BUILD_DATE`

В PHP 8.5 появилась константа `PHP_BUILD_DATE`, которая хранит дату и время сборки PHP-бинарного файла. Ранее эту информацию можно было получить только через `phpinfo()`, что было неудобно из-за необходимости парсить вывод функции. Теперь данные доступны напрямую в удобном формате.

В PHP 8.5 (см. обзор новых функций) добавлена константа PHP_BUILD_DATE, которой присваивается время и дата сборки бинарного файла PHP.

В PHP существуют константы для получения информации о версии исполняемого файла. К ним относятся PHP_VERSION и PHP_VERSION_ID.

Тем не менее, ранее информация о сборке была доступна только из функции phpinfo(). Извлечение информации о билде из phpinfo неудобно, поскольку она напрямую выводит текст в стандартный вывод, и вызывающему приходится собирать и анализировать эту информацию. При запуске phpinfo в CLI или браузере формат вывода различается, информация выводится в виде простого текста или HTML.

phpinfo()
PHP Version => 8.5.1

System => Linux Base 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64
Build Date => Dec 18 2025 23:39:41
Build System => Linux
Build Provider => Debian
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/8.5/cli
...

В браузере будет отображена типичная для phpinfo() таблица:

Вывод phpinfo() с информацией о Build Date: Dec 18 2025 23:39:41
Вывод phpinfo() с информацией о Build Date: Dec 18 2025 23:39:41

С появлением новой константы информация о сборке стали доступны напрямую.

echo PHP_BUILD_DATE; // Dec 18 2025 23:39:41

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

Дата создания билда, присвоенная константе PHP_BUILD_DATE, представлены в PHP формате M j Y H:i:s.

Обратите внимание, что дата месяца (j) имеет префикс в виде пробела, если она меньше 10. Например, сборка PHP, выполненная 3 декабря, будут иметь значение Dec 3 2025 10:44:26.

Это значение можно преобразовать в объект DateTimeImmutable, как приведено ниже:

$dt = DateTimeImmutable::createFromFormat('M j Y H:i:s', PHP_BUILD_DATE);

$dt->format('U'); // Unix timestamp, e.g. "1766101181"
$dt->format('Y-M-d'); // "2025-Dec-18"

Влияние на обратную совместимость

Константа PHP_BUILD_DATE — новая константа, добавленная в PHP 8.5. Если PHP-приложение не объявляет константу с идентичным именем в глобальном пространстве имён, это изменение не вызывает никаких проблем с обратной совместимостью.

В предыдущих версиях PHP, хотя и с некоторыми трудностями, но можно извлечь это значение из вывода функции phpinfo():

ob_start();
phpinfo(INFO_GENERAL);
$info = ob_get_clean();

preg_match('/Build Date(?:( => | <\/td><td class="v">))(?<buildtime>[A-Za-z]{3} (?: \d|\d\d) \d{4} \d{2}:\d{2}:\d{2})/', $info, $matches);

echo $matches['buildtime']; // Dec 18 2025 23:39:41

Комментарии


Дополнительные материалы

Предыдущая Статья

PHP 8.5: Новая константа PHP_BUILD_PROVIDER