我正在嘗試使一個函數給出兩個日期之間的季度數作爲整數。傳遞給函數的日期通常是四分之一日期,除非偶爾有一個日期只是一個任意日期。兩個日期之間的區別
基本上我希望它找出兩個日期的哪個季度落入並給出季度數的整數差異。
E.g.
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
我們可以看到theat當日期是在一個季度結束後的月份,我們沒有得到正確的答案。
任何人都可以提出改進?
與功能的主要問題是計算一個月區塊的數目(四捨五入),而不管季度開始/結束。另外,你應該除以3而不是4. – Maple