PHP 8.5: Новая константа `PHP_BUILD_DATE`
В 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С появлением новой константы информация о сборке стали доступны напрямую.
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