Dies ist das erste Mal, dass ich die eingebaute DateTime-Klasse verwendet habe, aber wir müssen Berechnungen basierend auf Monaten vorher/vorwärts machen und erhalten interessante Ergebnisse bei der Eingabe von Tageszahlen, die in einem Monat aber nicht in einem anderen existieren. und ich bin mir nicht sicher, ob PHP es wirklich genau macht! (BTW, ich habe das nur auf v5.2 Legacy-Code getestet, an dem ich jetzt arbeiten muss)PHP DateTime Monat richtig Rundung für fehlende Tagesnummern?
So, zum Beispiel, wenn ich das heutige Datum (2016-10-31) eingeben, subtrahieren Sie 6 Monate (mit -> modifizieren ('- 6 Monate'), das ausgegebene Datum (mit -> Format ('Ym-d')) ist der 1. Mai! (2016-05-01). Dies deutet darauf hin, dass PHP die Kette nur auf die Tage im nächsten Monat hochzieht (also 29 für Feb in einem Nicht-Schaltjahr ist der 1. März, 30 ist der 2. März, 31 ist der 3. März usw.).
Mit dieser Logik, ich deduzierte Mai 31 minus 1 Monat wäre 1. Mai, die es war, als ich es getestet!
Ist dies eine genaue Methode zum Hinzufügen/Subtrahieren nach Monat? Ich bin mir noch nicht sicher, ob unsere Abteilungen auf diese Weise rechnen, aber ich bin neugierig, ob noch jemand darauf gestoßen ist.
Fast jeder, der mit Daten gearbeitet hat, ist in dieses hineingeraten, und es kommt von missverständlichen Daten .... Arbeit vom 1. des Monats, und dann auf den letzten Tag des Monats nach dem Hinzufügen/Subtrahieren –
@mark -baker Missverständnisdaten? Ich habe nur beschrieben, wie PHP es berechnet ... Ich habe keine Kontrolle darüber, es sei denn, ich möchte ihren Quellcode ändern und neu kompilieren ... er kam von Zend. Ich kann nicht unbedingt ab dem 1. des Monats arbeiten, wenn der Benutzer den ursprünglichen Monat/Tag auswählt und ich von dort Monat (e) subtrahieren muss. Ich habe nur gefragt, ob die PHP-Logik der richtige Weg ist, um nach Monat zu subtrahieren (Javascript und Microsoft machen es anders). –