Calcular cuántos meses han pasado entre dos fechas con PHP

Había por un ahí un chiste malo que dice algo como que si le preguntas a un abogado cuánto es dos mas dos, te pregunta ¿cuánto quieres que sea? Esta función calcula los meses que han pasado desde una fecha a otra, pero no meses como los mortales los conocemos, por ejemplo:

2016-12-16 a 2017-11-02 -- 10 meses 17 días
2017-03-18 a 2018-01-16 -- 9 meses 29 días
2017-04-16 a 2017-11-02 -- 6 meses 16 días
2017-09-30 a 2017-10-01 -- 0 meses 1 día

Es decir, los meses naturales entre dos fechas es fácil calcularlos con PHP usando la función DateDiff, sin embargo si vemos los meses que han pasado (diferencia relativa) entre esas dos mismas fechas, la cosa cambia:

2016-12-16 a 2017-11-02 -- 11 meses
2017-03-18 a 2018-01-16 -- 10 meses
2017-04-16 a 2017-11-02 -- 7 meses
2017-09-30 a 2017-10-01 -- 1 meses

Por tomar el último ejemplo, del 30 de septiembre al primero de octubre del mismo año sólo ha pasado 1 día y cero meses. Sin embargo, de septiembre a octubre ha pasado un mes... El código fuente del ejemplo se encuentra en mi github.

+ fotos / videos

Almacenado en PHP, Utils

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Calcular cuántos meses han pasado entre dos fechas con PHP

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado jueves 8 de julio de 2021, 11:19