在php中找到月份差异?

有什么办法可以找到PHP中月份的差异?我有从2003年10月17日到2004年3月24日之间的输入。我需要找出这两天内有多少个月。假设6个月,我只需要几个月的输出。感谢您指导我的工作日差。

我通过MySQL找到解决方案,但我在PHP中需要它。有人帮助我,谢谢。


天涯尽头无女友
浏览 433回答 3
3回答

鸿蒙传说

这是一个快速的:$date1 = mktime(0,0,0,10,0,2003); // m d y, use 0 for day$date2 = mktime(0,0,0,3,0,2004); // m d y, use 0 for dayecho round(($date2-$date1) / 60 / 60 / 24 / 30);

慕标5832272

在测试了大量解决方案之后,将其全部进行单元测试,这就是我得出的结果:/** * Calculate the difference in months between two dates (v1 / 18.11.2013) * * @param \DateTime $date1 * @param \DateTime $date2 * @return int */public static function diffInMonths(\DateTime $date1, \DateTime $date2){    $diff =  $date1->diff($date2);    $months = $diff->y * 12 + $diff->m + $diff->d / 30;    return (int) round($months);}例如,它将返回(来自单元测试的测试用例):01.11.2013-30.11.2013-1个月2013年1月1日-2013年12月31日-12个月31.01.2011-28.02.2011-1个月01.09.2009-01.05.2010-8个月01.01.2013-31.03.2013-3个月15.02.2013-15.04.2013-2个月1985年2月1日-2013年12月31日-347个月注意:由于四舍五入是与日期进行舍入,因此即使是半个月也将被舍入,如果在某些情况下使用它可能会导致问题。因此,请勿在这种情况下使用它,否则会导致问题。例如:2013年11月2日-2013年12月31日将返回2,而不是1(符合预期)。
打开App,查看更多内容
随时随地看视频慕课网APP