加入日期是在 PHP 一年中的同月

join date when have same month an year in PHP

当日期具有相同的月份和年份时,我们如何在 php 中加入日期,并且 2015-03-13 - 2015-03-15 像这样 13-15 March 2015,或者当它们具有不同的月份时,它将使格式像 13 March - 15 April 2015

这是解决方案

 function get_custom_date($date1,$date2){
        $d1_month = date("F", strtotime($date1));   
        $d2_month = date("F", strtotime($date2));

        $d1_date = date("d", strtotime($date1));    
        $d2_date = date("d", strtotime($date2));

        $d1_year = date("Y", strtotime($date1));    
        $d2_year = date("Y", strtotime($date2));

        if($d1_year == $d2_year){
            if($d1_month == $d2_month){
                $new_date_format = date("F Y",strtotime($date1));
                return $d1_date.'-'.$d2_date.' '.$new_date_format;
            }else{
                $current_year = date("Y", strtotime($date1));
                return  $d1_date.' '.$d1_month.' - '.$d2_date.' '.$d2_month.' '.$current_year;
            }
        }else{

            return  $d1_date.' '.$d1_month.' '.$d1_year.' - '.$d2_date.' '.$d2_month.' '.$d2_year;  
        }   

    }

    $my_date_format = get_custom_date('2015-03-13','2015-04-15');
    echo $my_date_format;

注意:假设您的第一个日期总是小于第二个。

OP 的解决方案。

    function custom_date_format($date_a, $date_b){
    $start_date = strtotime($date_a);  
    $end_date = strtotime($date_b);

    if ($end_date != '') {  
        $year1 = date('Y', $start_date);  
        $year2 = date('Y', $end_date);  
        $month1 = date('m', $start_date);  
        $month2 = date('m', $end_date);     

        if ($start_date < $end_date) {  
            if ($year1 != $year2) {  
                $holiday_date = date('F j, Y', $start_date) . ' to ' . date('F j, Y', $end_date);  
            }  
            else {  
                if ($month1 != $month2) {  
                          $holiday_date = date('j F', $start_date) . ' - ' . date('j F', $end_date) . ' '. date('Y', $end_date);  
                }  
                else {  
                          $holiday_date = date('j', $start_date) . ' - ' . date('j', $end_date) . ' '.date('F', $end_date).' '. date('Y', $end_date);  
                }  
            }  
        }  
        else {  
                $holiday_date = 'Invalid date range.';  
        }  
    }  
    else {  
            $holiday_date = date('F j, Y', $start_date);  
    }    
    return $holiday_date;
}