Для всех основных версий результат одинаковый и корявый. Хм...
https://3v4l.org/KXYvi
И вот что написано в документации:
блабалбалааабалаблала много букв, ага, вот:
выставляем date_default_timezone_set(‘UTC’);
и всё начинает работать не так, как прежде, но так, как нужно:
https://3v4l.org/ha3O9
в крайнем примере первые два интервала внутри месяца -- на всех версиях нуль
а третий пример с 1 февраля по 1 марта = 1 на всех версияхъ
и связано это всё с разгуляем по часам между зонами (соотв. на крайних датах эти НЕУЧИТЫВАЕМЫЕ +-часы зональные и дают, насколько я понял, отколнение от нормы)
Спасибо за интересный вопрос.