Tach!
Sobald der Februar nicht im Intervall enthalten ist, wird das Problem vermutlich nicht auftreten, denn alle anderen Monate haben mindestens 30 Tage.
Das sagst du so einfach. Als Differenz (in Zeitzone Europe/Berlin) zwischen 1.3.2016 und 1.4.2016 berechnet DateTime::diff() 1 Monat und 2 Tage, zwischen 1.5.2016 und 1.6.2016 hingegen 1 Monat und 1 Tag. In absoluten Tagen sind das aber in beiden Fällen 31.
dedlfix.