Мне известно о проблеме 2038 года в PHP из-за 32-битного ограничения целочисленных значений. Я знаю, что мне нужна 64-битная система, чтобы она работала.
Ну, я сделал это, я установил Apache 2.4.12 Win64
а также PHP Version 5.6.6RC1 - Thread Safe 64bit
для окон. Я также на Windows 7 64bit.
И моя проблема в том, что strtotime по-прежнему не может обрабатывать даты выше 2038 года.
Может быть, в моей голове есть борьба, но я не могу найти проблему. Я прошу явно strtotime
я знаю решение DateTime
который работает, но у меня есть старые проекты, которые используют много strtotime
, Также я не могу избавиться от платформы Windows, это просто здесь, в нашей компании 🙁
var_dump(strtotime("2038-11-01"));
// output: bool(false)
Edit1: Я проверил php 7.0.0dev и здесь это работает. Похоже, я должен ждать PHP7, чтобы получить правильную 64-битную на Windows. К счастью, 7.0.0dev кажется мне довольно стабильным.
Edit2: С PHP7 проблема больше не существует. Больше не рекомендуется использовать любую ветку 5.x.
Вот мой вывод phpinfo
Пожалуйста, попробуйте последний мастер снимок, чтобы получить здесь http://windows.php.net/downloads/snaps/master/ . В общем случае — не имеет значения, являются ли ваши окна 64-битными. В PHP5 базовый API является 32-битным для многих вещей, включая время и целые числа. PHP7 (основные сборки, которые я связал) имеет истинную 64-битную поддержку.
Благодарю.
Других решений пока нет …