Moin,
Folgendes einfaches Script ergibt unverständlicherweise 0 anstatt der erwarteten 1.
$date1=date_create("2016-02-01"); $date2=date_create("2016-03-01"); $diff=date_diff($date1,$date2,true); echo $diff->format("%m");
Wenn ich bei $date2 anstelle vom März den April eintrage, dann wird korrekt "2" ausgegeben.
Hat jemand eine Erklärung?
ja, aber als reine Vermutung: Monate sind unterschiedlich lang. Da bei einer reinen Differenz aber der Kalenderbezug flötengeht, muss date_diff beim Berechnen der Monate von einer "typischen" Länge ausgehen, vermutlich 30. Der Februar hatte in diesem Jahr 29 Tage, also ergibt sich "weniger als 1 Monat" und das wird auf 0 abgerundet, während Februar und März in Summe 60 Tage hatten, also 2 Monate.
Ist das plausibel?
So long,
Martin
--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy