Как объединить две даты в обычный читаемый диапазон дат - PullRequest
3 голосов
/ 29 сентября 2010

Допустим, у вас есть следующий диапазон дат:

2010-04-10 - 2010-04-15

Как человек, я мог бы написать это как April 10 - 15, 2010 или что-то в этом роде. Не уверен, есть ли определенный правильный способ записи диапазонов, как этот, но в любом случае, если бы вы сделали что-то подобное, как бы вы это сделали? Я даже не уверен, с чего начать ...

Я бы хотел сделать это так, чтобы диапазоны дат потенциально могли быть более компактными, удобными для чтения и более привлекательными.

Ответы [ 2 ]

5 голосов
/ 29 сентября 2010

Я не думаю, что есть определенный способ сделать это, в основном это просто логика.Попробуйте записать простым текстом то, что вы думаете, правила должны быть с некоторыми примерами.Как пример, который вы дали, хороший.Что если они разные месяцы?Что если это был апрель 2005 года по апрель 2007 года, это апрель 2005–2007 годов?

Как только вы получите свои простые текстовые правила, код станет простым.Это просто вопрос о том, как вы хотите отформатировать его.

3 голосов
/ 06 ноября 2012

Это пример кода, который я использовал в своем проекте. Надеюсь, это поможет.

    $start_date = strtotime('2012-11-01');  
    $end_date = strtotime('2012-11-02');


    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('F j', $start_date) . '&ndash;' . date('F j', $end_date) . ', '. date('Y', $end_date);  
                }  
                else {  
                          $holiday_date = date('F j', $start_date) . '&ndash;' . date('j', $end_date) . ', '. date('Y', $end_date);  
                }  
            }  
        }  
        else {  
                $holiday_date = 'Invalid date range.';  
        }  
    }  
    else {  
            $holiday_date = date('F j, Y', $start_date);  
    }    
    echo $holiday_date;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...