get startdate and enddate for current quarter php

前端 未结 19 1619
悲哀的现实
悲哀的现实 2020-12-29 10:58

I am trying to set a start date and end date by the quarter.

For example, I am working on a reporting system where i need to report data for quarter 1, quarter 2, qu

19条回答
  •  执念已碎
    2020-12-29 11:37

    Simple example:

    define('DATE_FORMAT', 'Y-m-d');
    
    function get_start_and_end_date($case) {
        $start = 'first day of ';
        $end = 'last day of ';
    
        if ($case == 'this_quarter') {
            $case = 'quarter_' . ceil((new DateTime)->format('n') / 3);
        }
    
        switch ($case) {
            case 'prev_month'    : $start .= 'previous month'; $end .= 'previous month'; break;
            default              :
            case 'this_month'    : $start .= 'this month';     $end .= 'this month';     break;
            case 'next_month'    : $start .= 'next month';     $end .= 'next month';     break;
            case 'first_quarter' :
            case 'quarter_1'     : $start .= 'January';        $end .= 'March';          break;
            case 'quarter_2'     : $start .= 'April';          $end .= 'June';           break;
            case 'quarter_3'     : $start .= 'July';           $end .= 'September';      break;
            case 'last_quarter'  :
            case 'quarter_4'     : $start .= 'October';        $end .= 'December';       break;
        }
    
        return [
            'start' => (new DateTime($start))->format(DATE_FORMAT),
            'end' => (new DateTime($end))->format(DATE_FORMAT),
        ];
    }
    

    demo

提交回复
热议问题