Столкнулся недавно с такой проблемой. Дома на Mac выборка по датам в CMS работает отлично, а на рабочей Windows-машине с OpenServer 5.2.4 (Apache 2.4 x64, PHP 5.6 x64, MySQL 5.7 x64) уже нет.
Стал разбираться в коде CMS и нашел такую строку:
$end = $endDate ? Utils::date2timestamp($endDate) : strtotime("now +1000 years");Т. е. если конечная дата не указана, берется дата-время сейчас и прибавляется 1000 лет.
Опытным путем было установлено критическое значение лет, после которого код не работает:
$date = date('d-m-Y', strtotime('now +21 years')); echo $date . "<br>"; //15-06-2037 $date = date('d-m-Y', strtotime('now +22 years')); echo $date; //01-01-1970Собственно, такое поведение присуще 32-х битной версии PHP, чему я нашел подтверждение на StackOverflow:
https://stackoverflow.com/questions/798 ... the-future
Далее посмотрел спецификацию на php.net, секция "Примечания":
https://secure.php.net/manual/ru/functi ... time-notes
Поведение функции говорит о том, что у меня 32-битная версия PHP, однако phpinfo() показывает архитектуру x64. В чем может быть причина проблемы?