У меня проблемы с работой strtotime на локальном хосте, но не на удаленном сервере.
Я использую следующий код для анализа дат дней каждой недели;
$monday = date('Y-m-d', strtotime('monday this week +'.$x.' week'));
$tuesday = date('Y-m-d', strtotime('tuesday this week +'.$x.' week'));
$wednesday = date('Y-m-d', strtotime('wednesday this week +'.$x.' week'));
$thursday = date('Y-m-d', strtotime('thursday this week +'.$x.' week'));
$friday = date('Y-m-d', strtotime('friday this week +'.$x.' week'));
$saturday = date('Y-m-d', strtotime('saturday this week +'.$x.' week'));
$sunday = date('Y-m-d', strtotime('sunday this week +'.$x.' week'));
Это правильно работает в localhost.
На удаленном сервере он возвращается;
2018-10-22
2018-10-22
2018-10-22
2018-10-22
2018-10-22
2018-10-22
2018-10-28
Итак, он анализирует правильную дату для понедельника и воскресенья. Через день анализируется та же дата, что и понедельник.
Какие версии PHP у вас установлены? В версии 7.0.17 было исправлено несколько ошибок, связанных с датой., который, по-видимому, является версией, в которой этот код начинает работать правильно. См. 3v4l.org/Bt0PT. Короче говоря, убедитесь, что вы разрабатываете и развертываете одну и ту же версию.
Ваше «оно возвращается» является результатом интерпретации, и это плохая мысль, если вы опустите ожидаемый результат в своем вопросе. Пожалуйста, предоставьте минимальный воспроизводимый пример и соответствующий вывод на обеих машинах.
Я сбросил все сегменты, кроме вторника, который все еще анализировал дату понедельника.
Я пробовал изменить каждую функцию на «на следующей неделе». Это не изменило проблему с неправильным анализом дат со вторника по субботу.
Я бы посоветовал использовать библиотеку php, такую как Carbon :), это значительно упрощает работу с датами :)






На сервере был запущен php версии 5.6. Проблема была решена установкой версии 7.1.
Вы сбросили сегменты strtotime по отдельности, чтобы посмотреть, что он вернет?