Похоже, что DateTime также использует 32-битную версию на 64-битных серверах.
Таким образом, вы попали в беду.
Я решил это так:
new DateTime("99999/12/31 00:00:00");
Поскольку дата превышает максимальную длину для DateTime, дата использует максимальное возможное значение и возвращает объект DateTime, подобный этому (проверено с помощью var_dump):
object(DateTime)#9 (3) { ["date"]=> string(19) "2031-09-12 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } }
Я не уверен, если это отличается от версий PHP. Я проверил это с версией 5.4.