Если необходимо также рассчитать перекрытие, вы можете использовать следующую формулу:
overlap = max(0, min(EndDate1, EndDate2) - max(StartDate1, StartDate2))
if (overlap > 0) {
...
}
Ваш веб-сервер работает с обычным пользователем www-data
(который принадлежит группе www-data
), в то время как ваш консольный вызов PHPUnit создал кэш с пользователем и группой вашего пользователя оболочки. Это распространено и не должно вызывать удивления - почему пользователь оболочки должен иметь возможность записывать данные, используя другого пользователя?
Самое простое решение - использовать разные среды, так как вы также можете использовать разные настройки для запуска тестов. или доступ к предоставленным веб-сайтам.
Если вы не хотите использовать разные среды, в документации Symfony есть несколько идей для вашего:
www-data
и вашего пользователя оболочки были полные права доступа)