我正在尝试制作一个函数,将两个日期之间的季度数作为整数。传递给函数的日期通常是季度结束日期,除非偶尔有一个日期只是一个任意日期。
基本上我希望它找出两个日期属于哪个季度,并给出季度数的整数差。
例如
Q1 2013 -> Q2 2013 = 1
Q1 2013 -> Q4 2013 = 3
Q2 2012 -> Q2 2013 = 4
Q4 2012 -> Q1 2013 = 1
这是我的功能。我意识到它很差,并且不会一直返回正确答案,但我希望有人可以提供帮助......
function quarter_diff(DateTime $d1, DateTime $d2){
//difference in months
$diff = $d1->diff($d2);
return ceil((($diff->format('%y') * 12) + $diff->format('%m')+1)/4);
}
和这里的小提琴:http: //phpfiddle.org/lite/code/tiw-jx3
我们可以看到当日期在一个季度结束后的月份时,我们没有得到正确的答案。
任何人都可以建议改进吗?