Я пытаюсь создать функцию, которая дает мне количество кварталов между двумя датами как целое число. Даты, переданные функции, обычно являются датами окончания квартала, за исключением случаев, когда одна из дат является просто суровой датой.Разница между двумя датами в четверти
В принципе, я хочу, чтобы он выяснил, в какой четверти находятся две даты и дает целочисленную разницу в количестве кварталов.
Э.Г.
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