помещая даты в массив - PullRequest
2 голосов
/ 04 марта 2012

Хорошо, в настоящее время у меня есть массив. Это выглядит примерно так:

array(
    ['march'] => array(
        '2', '3', '4', '5', '6', '23', '24', '25', '30'
    );
);

Просто в качестве примера. Как бы я взял те дни в этом массиве марш, и сделать это:

03/02/2012 - 03/06/2012 23.03.2012 - 25.03.2012 03/30/2012

Любой

Ответы [ 2 ]

1 голос
/ 04 марта 2012

Вы можете найти последовательные промежутки времени, просматривая ваш массив следующим образом:

    $months = array(
        'march' => array(
            '2', '3', '4', '5', '6', '23', '24', '25', '30'
        )
    );

    $current_day = 0;
    $span_start = 0;
    $span_end = 0;

    foreach($months['march'] as $day) {

      if ($day > ++$current_day) {
        $current_day = $day;

        if ($span_start) {
          // print it out:
          echo "$span_start..$span_end\n";
        }

        $span_start = $day;
      }

      $span_end = $day;

    }

    // print the last one:
    echo "$span_start..$span_end";

Для форматирования / анализа / печати дат, однако, предложение других использовать встроенные функции time и date абсолютно правильно.

0 голосов
/ 04 марта 2012
$array = array(
    '2', '3', '4', '5', '6', '23', '24', '25', '30'
);

foreach($array as $date){
     echo '03/'.$date.'/2012;
}

Вам может понадобиться добавить ноль перед датами единичных единиц!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...