Вы можете найти последовательные промежутки времени, просматривая ваш массив следующим образом:
$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
абсолютно правильно.